📜  HTML5-WebSockets

📅  最后修改于: 2020-10-23 06:16:39             🧑  作者: Mango


WebSockets是用于Web应用程序的下一代双向通信技术,该技术在单个套接字上运行,并通过符合HTML 5的浏览器中的JavaScript接口公开。

与Web服务器建立Web套接字连接后,就可以通过调用send()方法从浏览器向服务器发送数据,并通过onmessage事件处理程序从服务器向浏览器接收数据。

以下是创建新的WebSocket对象的API。

var Socket = new WebSocket(url, [protocal] );

在这里,第一个参数url指定要连接的URL。第二个属性protocol是可选的,如果存在,它指定服务器必须支持成功的连接的子协议。

WebSocket属性

以下是WebSocket对象的属性。假设我们如上所述创建了Socket对象-

Sr.No. Attribute & Description
1

Socket.readyState

The readonly attribute readyState represents the state of the connection. It can have the following values −

  • A value of 0 indicates that the connection has not yet been established.

  • A value of 1 indicates that the connection is established and communication is possible.

  • A value of 2 indicates that the connection is going through the closing handshake.

  • A value of 3 indicates that the connection has been closed or could not be opened.

2

Socket.bufferedAmount

The readonly attribute bufferedAmount represents the number of bytes of UTF-8 text that have been queued using send() method.

WebSocket事件

以下是与WebSocket对象关联的事件。假设我们如上所述创建了Socket对象-

Event Event Handler Description
open Socket.onopen This event occurs when socket connection is established.
message Socket.onmessage This event occurs when client receives data from server.
error Socket.onerror This event occurs when there is any error in communication.
close Socket.onclose This event occurs when connection is closed.

WebSocket方法

以下是与WebSocket对象关联的方法。假设我们如上所述创建了Socket对象-

Sr.No. Method & Description
1

Socket.send()

The send(data) method transmits data using the connection.

2

Socket.close()

The close() method would be used to terminate any existing connection.

WebSocket示例

WebSocket是客户端和服务器之间的标准双向TCP套接字。套接字从HTTP连接开始,然后在HTTP握手后“升级”到TCP套接字。握手后,任何一方都可以发送数据。

客户端HTML和JavaScript代码

在撰写本教程时,只有很少的Web浏览器支持WebSocket()接口。您可以尝试使用最新版本的Chrome,Mozilla,Opera和Safari进行以下示例。


        
   
   
   
      
      
   

安装pywebsocket

在测试上述客户端程序之前,您需要一台支持WebSocket的服务器。从pywebsocket下载mod_pywebsocket-xxxtar.gz,其目的是为Apache HTTP Server提供Web套接字扩展,并按照以下步骤进行安装。

  • 解压缩并解压缩下载的文件。

  • 进入pywebsocket-xxx / src /目录。

  • $ Python setup.py构建

  • $ sudo Python setup.py安装

  • 然后阅读文档-

    • $ pydoc mod_pywebsocket

这会将其安装到您的Python环境中。

启动服务器

转到pywebsocket-xxx / src / mod_pywebsocket文件夹并运行以下命令-

$sudo python standalone.py -p 9998 -w ../example/

这将启动服务器在端口9998上的侦听,并使用echo_wsh.py所在的-w选项指定的处理程序目录。

现在,使用Chrome浏览器打开您开头创建的html文件。如果您的浏览器支持WebSocket(),那么您将收到警报,表明您的浏览器支持WebSocket,最后,当您单击“运行WebSocket”时,您将收到服务器脚本发送的“再见”消息。