介绍
engine.io
是一个为实时应用程序开发设计的跨浏览器WebSocket和轮询传输库。它是一个非常流行的npm包,可以帮助开发者在客户端和服务器端之间建立实时的双向通信。
安装
在安装之前,请确保您已经安装了Node.js和npm。
要安装engine.io
,请在终端中输入以下命令:
npm install engine.io
创建服务器
以下是如何使用engine.io
来创建一个简单的WebSockets服务器的示例代码:
-- -------------------- ---- ------- ----- ------ - ------------------------------- ----- -- - ----------------------------- ------------------- -------- -- - -------------- ------ ------------ -------------------- ------ -- - --------------------- ---------- ------ ---------------- ---- ---------- --- ------------------ -- -- - ------------------- --------------- --- --- --------------------展开代码
上面的代码创建了一个HTTP服务器,并使用engine.io
将其升级为WebSocket服务器。然后,它处理了connection
事件,该事件在客户端连接到服务器时触发。在这个回调函数中,我们可以处理客户端的消息或关闭事件。当收到消息时,我们会打印一条消息并发送一个回复。
客户端连接
现在我们已经创建了服务器,让我们尝试与它建立连接。以下是客户端代码的示例:
-- -------------------- ---- ------- ----- ------ - --- ------------- ----------------- -- -- - ---------------------- -- --------- ------------------ --------- --- -------------------- ------ -- - --------------------- ---------- ------ --- ------------------ -- -- - ------------------------- ---- --------- --- ------------------ ----- -- - --------------- ----- ----------- ----- ---展开代码
在这个代码中,我们创建了一个新的engine.io
Socket实例并尝试与服务器建立连接。一旦连接成功,我们将发送一条简单的消息。然后我们监听来自服务器的任何消息,并在收到消息时打印它。
使用轮询传输
如果您的应用程序需要支持旧版浏览器,则可以使用engine.io
的轮询传输。以下是如何在客户端配置轮询传输的示例代码:
const opts = { transports: ['polling'] }; const socket = eio.Socket(opts);
在上面的代码中,我们将传输选项设置为polling
。这将强制engine.io
使用轮询传输而不是WebSocket。
总结
在本文中,我们介绍了如何使用engine.io
创建一个WebSocket服务器和客户端。我们还探讨了如何使用polling
传输来支持旧版浏览器。希望这篇教程对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/41946