WebSocket是用于Web应用程序的下一代双向通信技术,该技术在单个Socket上运行,并通过兼容HTML 5的浏览器中的JavaScript接口公开。
与Web服务器创建WebSocket连接后,您可以通过调用 send()方法将数据从浏览器发送到服务器,并通过 onmessage 从服务器到浏览器接收数据。
以下是创建新的WebSocket对象的API。varSocket=newWebSocket(url,[protocal]);
在这里,第一个参数url指定要连接的URL。第二个属性protocol是可选的,如果存在,它指定服务器必须支持成功的连接的子协议。
WebSocket属性
以下是WebSocket对象的属性。假设我们如上所述创建了Socket对象-Sr.No.Attribute & 描述
1Socket.readyState
只读属性readyState表示连接状态。它可以具有以下值-
2Socket.bufferedAmount
只读属性bufferedAmount表示已使用send()方法排队的UTF-8文本的字节数。
WebSocket事件
以下是与WebSocket对象关联的事件。假设我们如上所述创建了Socket对象-事件事件处理程序说明
打开Socket.onopen创建Socket连接时发生此事件。
消息Socket.onmessage客户端从服务器接收数据时,将发生此事件。
错误Socket.onerror通信中出现任何错误时,就会发生此事件。
关闭Socket.onclose关闭连接时会发生此事件。
WebSocket方法
以下是与WebSocket对象关联的方法。假设我们如上所述创建了Socket对象-Sr.No.Method & 描述
1Socket.send()
send(data)方法使用连接传输数据。
2Socket.close()
close()方法将用于终止任何现有连接。
WebSocket示例
WebSocket是客户端和服务器之间的标准双向TCPSocket。Socket从HTTP连接开始,然后在HTTP握手后"Upgrades"到TCPSocket。握手后,任何一方都可以发送数据。
客户端JavaScript代码
在撰写本教程时,只有很少的Web浏览器支持WebSocket接口。您可以尝试以下示例使用最新版本的Chrome,Mozilla,Opera和Safari。
functionWebSocketTest(){if("WebSocket"in window){alert("WebSocket is supported by your Browser!");//Let us open a web socketvarws=newWebSocket("ws://localhost:9998/echo");ws.onopen=function(){//Web Socket is connected, send data using send()ws.send("Message to send");alert("Message is sent...");};ws.onmessage=function(evt){varreceived_msg=evt.data;alert("Message is received...");};ws.onclose=function(){//websocket is closed.alert("Connection is closed...");};}else{//The browser doesn't support WebSocketalert("WebSocket NOT supported by your Browser!");}}Run WebSocket