HTML5 ???
WebSocket? HTML5? ???? ??? ?? TCP ???? ??? ??? ?? ???????.
WebSocket API??? ????? ??? ????? ??? ???? ????? ?? ??? ?? ??? ?????. ???? ? ???? ?? ??? ? ????.
????? JavaScript? ?? WebSocket ??? ??? ??? ????. ??? ??? ? ?????? ??? TCP ??? ?? ?? ???? ??? ? ????.
? ?? ??? ?? ? send() ???? ?? ??? ???? ??? onmessage?? ?? ???? ??? ???? ?? ? ????. > ???.
?? API? WebSocket ??? ???? ? ?????.? ??? ? ?? ???? url? ?????. ??? URL???. ? ?? ???? ????? ?????? ???? ?? ????? ?????.var Socket = new WebSocket(url, [protocal] );
WebSocket ??
Socket.readyState
| 1 - ??? ???? ??? ???? ?????.
| ?? ?? ?? bufferedAmount? send()? ?? ??? ?? ????? ?? ???? ?? UTF-8 ???? ??? ????. |
WebSocket ???
??? WebSocket ??? ??? ??????. ? ??? ???? ?? ??? ????? ??? ?????.
事件 | 事件處理程序 | 描述 |
open | Socket.onopen | 連接建立時(shí)觸發(fā) |
message | Socket.onmessage | 客戶端接收服務(wù)端數(shù)據(jù)時(shí)觸發(fā) |
error | Socket.onerror | 通信發(fā)生錯(cuò)誤時(shí)觸發(fā) |
close | Socket.onclose | 連接關(guān)閉時(shí)觸發(fā) |
WebSocket ???
??? WebSocket ??? ?? ??????. ? ??? ???? ?? ??? ????? ??? ?????.
| < td width="193" valign="top" style="word-break: break-all; border-width: 1px; border-style: solid;"> < ?? > ???>?>||||||
Socket.send() | ??? ???? ??? ?? | |||||
Socket.close() | ?? ?? |
WebSocket ????
WebSocket ????? ????? TCP ?? ???????.
WebSocket ??? ????? ????? ????? ?? ??? ?? HTTP ??? ???? ???. ? ??? ?? HTTP ??? ??? "?????"?? ?? ?? ??? ??? ?? ?? ?? ??? ???? ????. : WebSocket" ???? ?????? ???? ?? HTTP ???? ?????. ??? ??? ?? ?? ??? ?? ??? ? ?? ??? ???? ?????? ?????. ?????? ?? ?? WebSocket ??? ????, ? ? ???? ? ?? ??? ?? ???? ??? ? ??? ? ??? ?????? ??? ??? ????? ??? ??? ?? ?????.
????? ?? HTML ? JavaScript
?? ???? ????? WebSocket() ?????? ?????. ??? ? ? ?? ????? ?? Chrome, Mozilla, Opera ? Safari???.
php_websocket.html ?? ??
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的瀏覽器支持 WebSocket!"); // 打開一個(gè) web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已連接上,使用 send() 方法發(fā)送數(shù)據(jù) ws.send("發(fā)送數(shù)據(jù)"); alert("數(shù)據(jù)發(fā)送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("數(shù)據(jù)已接收..."); }; ws.onclose = function() { // 關(guān)閉 websocket alert("連接已關(guān)閉..."); }; } else { // 瀏覽器不支持 WebSocket alert("您的瀏覽器不支持 WebSocket!"); } } </script> </head> <body> <div id="sse"> <a href="javascript:WebSocketTest()">運(yùn)行 WebSocket</a> </div> </body> </html>
pywebsocket ??
? ??? ???? ?? ??? ???? ???. WebSocket? ???? ???? ????. pywebsocket?? mod_pywebsocket? ??????? git ??? ???? ???????:
git clone https://github.com/google/pywebsocket.git
mod_pywebsocket?? Python ?? ??? ?????
mod_pywebsocket? Apache HTTP? ? ?? ?????. ?? ??? ??? ????.
????? ??? ??? ???.
pywebsocket ????? ?????.
?? ??:
$ python setup.py build
$ sudo python setup.py install
?? ??:
$ pydoc mod_pywebsocket
??? ??
pywebsocket/mod_pywebsocket ?????? ?? ??? ?????.
$ sudo pythonstandalone.py -p 9998 -w ../example/
? ??? ?? ?? 9998? ???? ???? ???. -w echo_wsh.py ???? ??? ????? ?????.
?? ?? ??? php_websocket.html ??? Chrome ?????? ? ? ????. ????? WebSocket()? ???? ?? "WebSocket ??"? ???? ?? ????? ? ??? ?? ?? ?? ?????. Process Gif ??:
???? ???? "??? ???????..."?? ???? ???.
- ?? ??
- ???? ????
-
????HTML ?? ????
32028?? ???? ????. -
????HTML+CSS ?? ?? ????
82907?? ???? ????. -
????HTML/CSS 5?? ?? ?? ????
26627?? ???? ????. -
????Han Shunping 2016 ?? HTML ?? ??? ????
10798?? ???? ????. -
?????????? ?? ????
27996?? ???? ????. -
??????? ?? ????
15917?? ???? ????. -
????ECshop ?? ????
12462?? ???? ????. -
????Node.js ?? ????
28541?? ???? ????. -
????Ajax ?? ????
15856?? ???? ????. -
????jQuery ?? ????
8934?? ???? ????. -
????Node.js ?? ????
7226?? ???? ????. -
????Thinkphp3.2 ?? ????, ?? ?? ??? ????
3037?? ???? ????.
? ??? ??? ???? ???? ????.
- PHP? ??? ???? ??? ?? ??? ???? ?????.
- ? ??? ?? ??? ?? ?? ??
- ??? ?? ???? ???? ??? Mini ?? MVC ?????? ??? ?? Tianlongbabu ??
- PHP ?? ?? ????: ?? PHP ?? [???? ??]
- ??? ?? ? ??? ???
- ??? ???? ?? ??
- ?? ?? Node.JS ?? ??
- ??? ?? ? ???? ????? ??: HTML5/CSS3/ES6/NPM/Vue/...[??]
- ???? PHP MVC ????? ??(?? ?? 40? ?/??? ??/???? ????? ??? ?)