We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebSocket 是 H5 引入的全双工通信方式,让服务端主动推送信息成为了可能。那么下面就来简单总结一下 WebSocket 与 Socket。
WebSocket 是基于 TCP 连接的全双工方式所实现的持久化协议。
那么,WebSocket 在建立连接过程中,需要经历两次握手。分别是:
WebSocket 中的 API 主要就是 onopen、onmessage、onclose、onerror 和 send。
建立连接。
var Socket = new WebSocket(url, [protocol] )
当客户端和服务端成功建立连接时,会触发 onopen 事件。
Socket.onopen = function(e) {}
当建立连接不成功时,会触发onerror事件。
Socket.onerror = function(e) {}
当客户端与服务端之间的 WebSocket 连接关闭时,会触发 onclose 事件。
Socket.onclose = function(e) {}
客户端使用 send 向服务端发送信息,使用 onmessage 监听事件。
Socket.send(...) Socket.onmessage = function(e) {}
提到 Socket,就不得不提一下 Socket 与 WebSocket 之间区别,那么它们两者之间有什么区别呢?
Socket 并不是一个协议,而是为了方便使用 TCP 或 UDP 而抽象出来的一个层,是位于应用层和传输层之间的一组接口。而 WebSocket 是基于 HTTP 协议所编写的,那么 WebSocket 是应用层协议。
那么,有人会提问,好像还听说过 Socket.io ,这个又是什么鬼?
其实,Socket.io 是对 WebSocket 的封装,原理其实就是对于高版本浏览器会使用 WebSocket 通信,而对于低版本浏览器则会使用长轮询进行兼容。
借用一下别人图。
当然,如果想深入的话,可以看看别人分享的好文。
[基于socket.io快速实现一个实时通讯应用](https://segmentfault.com/a/1190000018944634)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
WebSocket 是 H5 引入的全双工通信方式,让服务端主动推送信息成为了可能。那么下面就来简单总结一下 WebSocket 与 Socket。
WebSocket 通信
WebSocket 是基于 TCP 连接的全双工方式所实现的持久化协议。
那么,WebSocket 在建立连接过程中,需要经历两次握手。分别是:
WebSocket 中的 API 主要就是 onopen、onmessage、onclose、onerror 和 send。
建立连接。
当客户端和服务端成功建立连接时,会触发 onopen 事件。
当建立连接不成功时,会触发onerror事件。
当客户端与服务端之间的 WebSocket 连接关闭时,会触发 onclose 事件。
客户端使用 send 向服务端发送信息,使用 onmessage 监听事件。
Socket 通信
提到 Socket,就不得不提一下 Socket 与 WebSocket 之间区别,那么它们两者之间有什么区别呢?
Socket 并不是一个协议,而是为了方便使用 TCP 或 UDP 而抽象出来的一个层,是位于应用层和传输层之间的一组接口。而 WebSocket 是基于 HTTP 协议所编写的,那么 WebSocket 是应用层协议。
那么,有人会提问,好像还听说过 Socket.io ,这个又是什么鬼?
其实,Socket.io 是对 WebSocket 的封装,原理其实就是对于高版本浏览器会使用 WebSocket 通信,而对于低版本浏览器则会使用长轮询进行兼容。
借用一下别人图。
当然,如果想深入的话,可以看看别人分享的好文。
[基于socket.io快速实现一个实时通讯应用](https://segmentfault.com/a/1190000018944634)
The text was updated successfully, but these errors were encountered: