简介
Web Sockets 是用于 Web 应用程序的新一代双向通信技术,运行在单一套接字之上,它通过 JavaScript 接口暴漏在 HTML5 兼容的浏览器中。一个 WebSocket 就是客户端和服务端之间的标准双向 TCP 套接字。套接字以 HTTP 连接开始,在 HTTP 握手之后“升级”为 TCP 套接字。握手之后,任意一端都可以发送数据。
WebSocket 特点
- 建立在 TCP 协议之上,服务器端的实现比较容易
- 可以发送文本,也可以发送二进制数据。
- 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。
- 没有同源限制,客户端可以与任意服务器通信。
- 数据格式比较轻量,性能开销小,通信高效
- 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器
兼容性
IE10+ 及其它现在浏览器均支持兼容性点这里
示例
以expressjs+socket.io
构建的一个聊天室
效果
绿色背景是发送,白色背景是接收消息
ServerClient
1 | /** |
Client
1 |
|