websocket扫盲

来源:互联网 发布:网络传输速度测试工具 编辑:程序博客网 时间:2024/05/09 08:49

浏览器中的http请求仅能实现单向的通信,即需要客户端发送一次请求才能从服务器端拿回一些信息,那么要实现服务器端主动推送数据该怎么做呢,通过客户端间隔发送请求来请求新的数据是一种方案,但是存在不及时和效率低下的问题。后来逐渐被comet取代,comet可以一定程度上模拟双向通信,且在目前也应用到很多服务器端的推送场景。 flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能,但是应用到普通的浏览器中则显得太繁重。

最近学习了下websocket,它可以轻松实现浏览器和服务器端的双向通信,所以就可以轻松解决服务器端的推送信息。websocket的API非常简单,


客户端创建websocket语法:var socket = new WebSocket('ws://localhost:8080'); 

客户端t主要包括下面四个方法,分别是:

1. onopen:创建连接的时候触发该事件

2. onmessage:当接收到信息时触发该事件

3. onclose:关闭链接时触发该事件

4. send :用来向服务端发送信息


服务器端的处理也很简单,只需要写一个类继承WebSocketServer接口,需要实现下面四个方法:
1. onOpen:当客户端与服务器端建立链接时触发该事件
2. onClose:当连接关闭后触发该事件
3. onMessage:当服务端接收到请求的时候触发该事件
4. onError:当链接出错的时候触发该事件
5. send:服务端向所有客户端发送信息

原创粉丝点击