简单的 Web Socket 客户端
2017-10-31
HTML5之webSocket的客户端实现,建立webSocket连接、交换信息及最终关闭webSocket连接过程。
为了使用Web Socket,需要在Web服务器上运行一个Web Socket服务器。这个程序负责协调各方通信,而且启动后就会不间断的运行下去。本厂后端开发语言为php(毕竟是世界上最好的语言),有兴趣的可以在github上找相关服务端代码阅读。本文只介绍Web Socket客户端的实现。
一个聊天室的Web Socket简单客户端
创建Web Socket对象
var ws = new WebSocket('ws://127.0.0.1:8000'); //填写具体服务端地址 |
ws对象值如下:
binaryType:"blob", |
创建WebSocket对象后,页面就会尝试连接服务器。接下来,就是使用WebSocket对象的四个事件一个方法以及一个属性:onOpen、onError、onClose和onMessage还有send以及readyState。利用这些事件、方法、属性就可以实现与服务端的简单通信。
ws.onopen
ws.onopen = function () { |
onOpen是在建立连接后触发,代表连接成功。send()方法发送连接的相关信息给服务器端。
ws.onmessage
ws.onmessage = function (e) { |
onmessage是在页面从服务器接收到消息时触发。type区分服务器端返回消息的类型,可跟后端约定好,根据type的不同去执行不同的业务。
ws.onclose
ws.onclose = function (error) { |
onclose是在连接关闭时触发,连接关闭考虑是否需要做相应的提示或者重连。
ws.onerror
ws.onerror = function (error) { |
onerror是在连接出现问题时触发,连接出错考虑是否需要做相应的提示或者重连。
ws.send()
<input type="button" id="btn" value="发送" onclick="sendMsg()" > |
//发送信息到服务端 |
send方法用于向服务器发送数据。假设type为’sendMsg’,在onmessage事件里面监听该type对应值的服务端返回,进而做相应的处理。
ws.readyState
readyState返回对象的当前状态,一共有四种。可在需要做处理的地方判断状态值进而做相应的提示,一般判断状态值是否为’3’。
* CONNECTING:值为0,表示正在连接。 |