我刚刚开始使用Socket.io,我对Express有一些经验。我知道socket.io有双向通信,而express只是客户端到服务器。
这让我想,为什么我们不使用不同名称空间的socket.io,而完全不用express呢?
在哪些情况下我应该使用socket vs express?
在我需要双向通信的情况下,是否建议用express使客户机->服务器,然后对服务器->客户机使用套接字?
首先,express和Socket.io是完全不同的东西。Express是一个成熟的web服务器框架。您可以使用它来设置Web站点、处理来自浏览器的http请求、处理对API的http请求等。
IO是位于webSocket协议之上的通信层,webSocket协议使用http服务器建立初始连接。虽然使用socket.io和Express可以做的事情有一点重叠,但它们的不同之处在于重叠。
例如,如果您要建立一个Web站点,您不能用socket.io来完成,您可以使用Express这样的东西。
选择要表达的Ajax调用的原因:
所以,正如你所看到的,这个问题没有通用的答案。它实际上取决于通信的具体情况、所需的互操作性以及代码的确切需求。
以下是关于这个主题的一些其他参考资料:
Ajax vs socket.io
实时数据的websocket与rest API?