我希望在node.js中制作一个小型聊天应用程序。但是无论在哪里,我都发现要实现此功能,需要使用socket.io与node一起使用。由于node也是为推送通知而创建的,因此如果可能的话,想知道如何纯粹地在node中创建聊天应用程序。
是的,可以创建一个不使用socket.io支持聊天的node.js应用程序。您有以下选择:
使用直接的webSocket向客户端“推送”数据。你需要找或编写自己的服务器端代码来处理 webSocket 协议,因为这样的代码不是 node 默认内置的。ws module 是其中一种库。如果使用普通的 webSocket,你可能需要自己实现 socket.io 所实现的一些功能(例如自动重连)。
寻找其他构建在 webSocket 之上的某个 library(除了 socket.io),它可以让你向客户端推送数据。
发明自己的替代品,用于 webSocket(可能是客户端轮询或长轮询),并对其进行编码。这就是在 webSockets 存在之前所做的。它比持续连接的 webSocket 不高效得多。
所有这些选择都涉及编写一些已经为您在 socket.io 中编写的代码,因此大多数开发人员更愿意使用已经工作且经过测试的解决方案,而不是自己重新实现它。
fs
库或http
库),而其他库则是在使用之前安装的库(通常只需键入"npm install socket.io"
),然后var io = require("socket.io");
。Node.js并没有内置服务器端Websocket实现,因此您至少需要引入一个可以实现它的包。
如果您不想使用socket.io
,那么您可以选择使用ws
,这也是socket.io
底层使用的库。