在现代 Web 应用程序中,实时通信已成为普遍需求。而 socket.io 是一个流行的实现方式,它提供了一个简单的 API,可以在客户端和服务器之间实现双向通信。本文将介绍如何使用 socket.io 和 express 创建一个 Node.js 服务器。
安装依赖
首先,我们需要安装必要的依赖。在终端中运行以下命令:
--- ------- ------- ---------
创建服务器
接下来,我们将创建一个基本的 express 应用程序,并在其中添加 socket.io。在 app.js
文件中添加以下代码:
----- ------- - ------------------- ----- --- - ---------- ----- ---- - ---------------------------------- ----- -- - --------------------------- -------------------------------- - ------------ ------------ ----- ---- -- - ---------------------- - --------------- --- ------------------- -------- -- - -------------- ---- ------------ ----------------------- -- -- - ----------------- --------------- --- --- ----------------- -- -- - ---------------------- -- --------- ---
在这个例子中,我们首先创建了一个 express 应用程序,并将其绑定到一个 HTTP 服务器上。然后,我们创建了一个 socket.io 实例,并将其绑定到 HTTP 服务器上。接下来,我们指定一个静态文件夹,这样客户端就可以访问其中的文件。最后,我们定义了一个路由,将首页发送给客户端。在 io.on('connection', ...)
中,我们监听客户端连接事件,并在控制台中输出一条消息。在 socket.on('disconnect', ...)
中,我们监听客户端断开连接事件,并在控制台中输出一条消息。最后,我们将服务器绑定到端口 3000 上,并在控制台中输出一条消息。
客户端代码
接下来,我们需要在客户端中添加 socket.io。在 index.html
文件中添加以下代码:
--------- ----- ------ ------ ---------------- --------------- ------- ------ ------------- ------------ ------- --------------------------------------- -------- ----- ------ - ----- -------------------- -- -- - ---------------------- -- --------- --- ----------------------- -- -- - ------------------------- ---- --------- --- --------- ------- -------
在这个例子中,我们首先引入了 socket.io 的客户端库。然后,我们创建了一个 socket.io 实例,并监听连接事件和断开连接事件。在 socket.on('connect', ...)
中,我们监听连接事件,并在控制台中输出一条消息。在 socket.on('disconnect', ...)
中,我们监听断开连接事件,并在控制台中输出一条消息。
发送消息
现在,我们已经成功地建立了一个基本的 socket.io 连接。接下来,我们将学习如何在客户端和服务器之间发送消息。在 app.js
文件中添加以下代码:
------------------- -------- -- - -------------- ---- ------------ ----------------------- -- -- - ----------------- --------------- --- --------------- --------- ----- -- - --------------------- - - ----- ------------- --------- ----- --- ---
在这个例子中,我们添加了一个名为 chat message
的事件,并在控制台中输出接收到的消息。然后,我们使用 io.emit()
方法将消息发送给所有连接的客户端。
在 index.html
文件中添加以下代码:
--------- ----- ------ ------ ---------------- --------------- ------- ------ ------------- ------------ --- ------------------- ----- --------------- ------ --------------- ------------------ -- --------------------- ------- ------- --------------------------------------- -------- ----- ------ - ----- -------------------- -- -- - ---------------------- -- --------- --- ----------------------- -- -- - ------------------------- ---- --------- --- ----- ----------- - ------------------------------------ ----- -------- - ------------------------------------- ----- --------- - -------------------------------------- ----------------------------------- ------- -- - ----------------------- ----- ------- - ---------------- ----------------- --------- --------- --------------- - --- --- --------------- --------- ----- -- - ----- ---------- - ----------------------------- ---------------------- - ---- ------------------------------------ --- --------- ------- -------
在这个例子中,我们添加了一个表单,允许用户输入消息并发送给服务器。我们还添加了一个 <ul>
元素,用于显示所有接收到的消息。在 chatForm.addEventListener('submit', ...)
中,我们监听表单提交事件,并使用 socket.emit()
方法将消息发送给服务器。在 socket.on('chat message', ...)
中,我们监听服务器发送的消息,并将其添加到消息列表中。
结论
使用 socket.io 和 express 创建一个 Node.js 服务器是非常简单的。在本文中,我们学习了如何建立基本的连接,并在客户端和服务器之间发送消息。我们还学习了如何在客户端中显示接收到的消息。希望本文对您有所帮助,让您能够更好地了解 socket.io 和 express。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67334ef90bc820c58241a685