📅  最后修改于: 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对象的属性。假设我们如上所述创建了Socket对象-
Sr.No. | Attribute & Description |
---|---|
1 |
Socket.readyState The readonly attribute readyState represents the state of the connection. It can have the following values −
|
2 |
Socket.bufferedAmount The readonly attribute bufferedAmount represents the number of bytes of UTF-8 text that have been queued using send() method. |
以下是与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对象关联的方法。假设我们如上所述创建了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是客户端和服务器之间的标准双向TCP套接字。套接字从HTTP连接开始,然后在HTTP握手后“升级”到TCP套接字。握手后,任何一方都可以发送数据。
在撰写本教程时,只有很少的Web浏览器支持WebSocket()接口。您可以尝试使用最新版本的Chrome,Mozilla,Opera和Safari进行以下示例。
在测试上述客户端程序之前,您需要一台支持WebSocket的服务器。从pywebsocket下载mod_pywebsocket-xxxtar.gz,其目的是为Apache HTTP Server提供Web套接字扩展,并按照以下步骤进行安装。
解压缩并解压缩下载的文件。
进入pywebsocket-xxx / src /目录。
$ Python setup.py构建
$ sudo Python setup.py安装
然后阅读文档-
这会将其安装到您的Python环境中。
转到pywebsocket-xxx / src / mod_pywebsocket文件夹并运行以下命令-
$sudo python standalone.py -p 9998 -w ../example/
这将启动服务器在端口9998上的侦听,并使用echo_wsh.py所在的-w选项指定的处理程序目录。
现在,使用Chrome浏览器打开您开头创建的html文件。如果您的浏览器支持WebSocket(),那么您将收到警报,表明您的浏览器支持WebSocket,最后,当您单击“运行WebSocket”时,您将收到服务器脚本发送的“再见”消息。