Websocket 是一种 HTML5 技术,它允许服务器推送数据给客户端,并提供了一种双向通信的方式。在现代的 Web 应用程序中,Websocket 已经成为了实现实时通信的首选方式。
Express.js 是一个流行的 Node.js Web 应用程序框架,它提供了一套完整的路由和中间件系统。在本文中,我们将介绍如何使用 Express.js 实现 Websocket 实时通信。
安装
在开始之前,我们需要确保已经安装了 node.js 和 npm。在命令行中执行以下命令,安装相关的 npm 包:
npm install express socket.io
创建 Express.js 应用程序
在这里,我们将创建一个简单的 Express.js 应用程序。创建一个名为 app.js 的文件,并在其中添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - ---------------------- - --------------- --- ---------------- -- -- - ---------------- --------- -- ---- -------- ---
这里,我们简单地创建了一个 Express 应用程序,在根路由下返回一个 HTML 文件。
创建 Websocket 服务器
为了创建 Websocket 服务器,我们需要使用 Socket.IO。在我们的项目目录中创建一个名为 server.js 的文件,并在其中添加以下代码:
-- -------------------- ---- ------- ----- --- - --------------------- ----- ---- - ---------------------------------- ----- -- - --------------------------- ------------------- -------- -- - -------------- ---- ------------ ----------------------- -- -- - ----------------- --------------- --- --- ----------------- -- -- - ---------------------- --------- -- ---- -------- ---
这里,我们简单地创建了一个 Socket.IO Websocket 服务器,并在控制台打印出有用户连接和断开的消息。
连接 Websocket 客户端
现在,我们可以在客户端中连接到我们的 Websocket 服务器。在我们的 index.html 文件中添加以下代码:
-- -------------------- ---- ------- --------- ----- ------ ------ ---------------- ------------ ------- --------------------------------------- -------- ----- ------ - ------------------------------------ -------------------- -- -- - ---------------------- -- ------------ --- ----------------------- -- -- - ------------------------- ---- ------------ --- --------- ------- ------ ------------- --------- ------- -------
这里,我们简单地在客户端中连接到我们的 Websocket 服务器,并在控制台打印出有连接和断开的消息。
发送消息
现在,我们可以发送消息从客户端到服务器,并从服务器到客户端。修改我们的 server.js 文件,使其接受客户端发来的消息,并向所有连接的客户端广播该消息。
-- -------------------- ---- ------- ----- --- - --------------------- ----- ---- - ---------------------------------- ----- -- - --------------------------- ------------------- -------- -- - -------------- ---- ------------ ---------------------- -------- -- --- ---- -------- ----------------------- -- -- - ----------------- --------------- --- -------------------- ----- -- - --------------------- - - ----- ------------------ ----- --- --- ----------------- -- -- - ---------------------- --------- -- ---- -------- ---
这里,我们向客户端发送欢迎消息,并在每次接收到消息时,广播该消息给所有连接的客户端。
结论
使用 Express.js 和 Socket.IO,我们可以轻松地实现 Websocket 实时通信。在本文中,我们介绍了如何创建一个简单的 Express.js 应用程序和一个 Websocket 服务器,并向所有连接的客户端广播消息。使用这种技术,您可以创建强大的实时 Web 应用程序,包括聊天应用程序、实时协作工具和实时监控仪表板等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674e5154947dc5bcb30a3e33