天天看點

JavaEE & HTML5之WebSocket1、工作流程2、W3C WebSocket接口3、Java服務端

1、工作流程

(1)Java伺服器建立WebSocket執行個體,并在Tomcat容器中維護和等待。

(2)浏覽器中建立用戶端WebSocket執行個體,這時,就會和伺服器進行連接配接,如果連接配接成功,伺服器觸發onOpen事件,用戶端觸發onopen事件。

(3)浏覽器中WebSocket執行個體發送消息, webSocket.send('*****');。

(4)伺服器onMessage事件觸發,解析消息内容,并進行相應的邏輯操作,傳回結果給浏覽器 session.getBasicRemote().sendText("Server Received Stop Message!"); 。

(5)浏覽器onmessage事件觸發,解析消息内容,進行邏輯操作。

(6)循環(3)~(5);

(7)關閉連接配接。

2、W3C WebSocket接口

enum BinaryType { "blob", "arraybuffer" };
[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=Window,Worker]
interface WebSocket : EventTarget 
{
readonly attribute DOMString url;
// ready state : 狀态碼
const unsigned short CONNECTING = 0;
const unsigned short OPEN = 1;
const unsigned short CLOSING = 2;
const unsigned short CLOSED = 3;
readonly attribute unsigned short readyState;
readonly attribute unsigned long bufferedAmount;
// networking : 網絡操作
attribute EventHandler onopen; // 當Browser和WebSocketServer連接配接成功後,會觸發onopen消息
attribute EventHandler onerror; // 如果連接配接失敗,發送、接收資料失敗或者處理資料出現錯誤,browser會觸發onerror消息
attribute EventHandler onclose; // 當Browser接收到WebSocketServer端發送的關閉連接配接請求時,就會觸發onclose消息
readonly attribute DOMString extensions;
readonly attribute DOMString protocol;
void close([Clamp] optional unsigned short code, optional DOMString reason);  // 關閉連接配接
// messaging
attribute EventHandler onmessage; // 當Browser接收到WebSocketServer發送過來的資料時,就會觸發onmessage消息,參數evt中包含server傳輸過來的資料
attribute BinaryType binaryType;
void send(DOMString data);  // 發送字元串資料
void send(Blob data); // 發送二進制大對象
void send(ArrayBuffer data); // ArrayBuffer用來表示一串bytes:http://technet.microsoft.com/zh-cn/ie/br212474
void send(ArrayBufferView data); // JavaScript中的二進制類型如Blob、ArrayBuffer和ArrayBufferView
};
           

http://dev.w3.org/html5/websockets/

3、Java服務端

選擇合适的工具:

Apache Tomcat Version 7.0.57,重點是websocket-api.jar

java version "1.7.0_71"

示例,參考:http://blog.csdn.net/javascriptcoder/article/details/42913561

繼續閱讀