socket.io-client和socket.io之间的区别是什么?
我也觉得有点令人困惑的是socket.io-client还有"server-side usage"的部分
答案 0 :(得分:11)
socket-io.client
是socket.io的客户端实现的代码。该代码可以由浏览器客户端使用,也可以由启动与其他服务器的socket.io连接的服务器进程使用(从而在socket.io连接中扮演客户端角色)。
未启动与其他服务器的socket.io连接的服务器将不使用此代码。这有点令人困惑,因为在使用socket.io时,似乎客户端和服务器都使用相同的socket.io.js
文件(因为它们都引用了具有相同名称的文件) ,但事实并非如此。服务器使用的文件与客户端不同。
来自Github page for socket-io.client:
socket.io-client的独立版本由 socket.io服务器为/socket.io/socket.io.js。或者你可以 提供在此存储库根目录下的文件socket.io.js。
请记住,有一些属于客户端和服务器的独特功能,因此使用某些不同的代码并不奇怪。虽然它们共享用于解析协议及其类似代码的代码,但服务器能够运行服务器或挂钩到现有Web服务器,并且它具有.join()
和.leave()
等方法以及保留的数据结构跟踪所有连接的套接字,并且预计将存在于node.js环境中。客户端能够发起连接(发送正确的http请求),如果不支持webSockets则进行轮询,如果存在,则构建在本机webSocket实现上等等。