socket.io-client vs socket.io

时间:2015-10-09 15:04:52

标签: javascript socket.io

socket.io-clientsocket.io之间的区别是什么?

我也觉得有点令人困惑的是socket.io-client还有"server-side usage"的部分

1 个答案:

答案 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实现上等等。