HTML5学习笔记(七)WebSocket

WebSocket是HTML5开始提供的一种在单个 TCP 链接上进行全双工通信的协议。在WebSocket API中,浏览器和服务器只须要作一个握手的动做html

浏览器经过 JavaScript 向服务器发出创建 WebSocket 链接的请求,链接创建之后,客户端和服务器端就能够经过 TCP 链接直接交换数据。python

当你获取 Web Socket 链接后,你能够经过 send() 方法来向服务器发送数据,并经过 onmessage 事件来接收服务器返回的数据。git

WebSocket 属性

属性 描述
Socket.readyState

只读属性 readyState 表示链接状态,能够是如下值:github

  • 0 - 表示链接还没有创建。web

  • 1 - 表示链接已创建,能够进行通讯。浏览器

  • 2 - 表示链接正在进行关闭。服务器

  • 3 - 表示链接已经关闭或者链接不能打开。websocket

Socket.bufferedAmount

只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,可是尚未发出的 UTF-8 文本字节数。socket


WebSocket 事件

事件 事件处理程序 描述
open Socket.onopen 链接创建时触发
message Socket.onmessage 客户端接收服务端数据时触发
error Socket.onerror 通讯发生错误时触发
close Socket.onclose 链接关闭时触发

WebSocket 方法

方法 描述
Socket.send()

使用链接发送数据ui

Socket.close()

关闭链接

安装 pywebsocket

在执行以上程序前,咱们须要建立一个支持 WebSocket 的服务。从 pywebsocket 下载 mod_pywebsocket ,或者使用 git 命令下载:

git clone https://github.com/google/pywebsocket.git

mod_pywebsocket 须要 python 环境支持

mod_pywebsocket 是一个 Apache HTTP 的 Web Socket扩展,安装步骤以下:

 

  • 解压下载的文件。

  • 进入 pywebsocket 目录。

  • 执行命令:

    $ python setup.py build $ sudo python setup.py install
  • 查看文档说明:

    $ pydoc mod_pywebsocket

开启服务

在 pywebsocket/mod_pywebsocket 目录下执行如下命令:

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

以上命令会开启一个端口号为 9998 的服务,使用 -w 来设置处理程序 echo_wsh.py 所在的目录。

如今咱们能够在 Chrome 浏览器打开前面建立的 runoob_websocket.html 文件。若是你的浏览器支持 WebSocket(), 点击"运行 WebSocket",你就能够看到整个流程各个步骤弹出的窗口,流程 Gif 演示

相关文章
相关标签/搜索