Socket.io 与 Express 框架配合使用详解及实例展示

Socket.io 是一个基于 Node.js 的实时双向通信库,能够实现实时通讯功能。而 Express 是一个 Node.js 的 web 框架,提供了简单的路由、中间件等功能。本文将介绍如何将 Socket.io 与 Express 框架配合使用,实现实时通讯功能。

安装

首先需要安装 Socket.io 和 Express 框架,可以使用 npm 进行安装:

--- ------- --------- -------

创建 Express 应用

在创建 Express 应用之前,需要先导入 Socket.io 库,可以在 app.js 文件中添加如下代码:

----- ------- - -------------------
----- --- - ----------
----- ---- - ----------------------------
----- -- - ---------------------------

其中,http 是 Node.js 自带的 http 模块,用于创建一个 http 服务器。io 则是 Socket.io 的核心对象,用于管理 Socket.io 的连接、事件等。

创建 Socket.io 连接

在 Express 应用中,需要为每个客户端创建一个 Socket.io 连接。可以在 app.js 文件中添加如下代码:

------------------- ---------------- -
  -------------- ---- ------------
  ----------------------- ---------- -
    ----------------- ---------------
  ---
---

其中,io.on('connection') 表示当有新的 Socket.io 连接时,执行后面的回调函数。回调函数中的 socket 表示当前连接的 Socket 对象。在上面的代码中,当有新的连接时,在控制台输出 'a user connected',当连接断开时,在控制台输出 'user disconnected'。

发送消息

在 Socket.io 中,可以使用 emit() 方法发送消息。在 app.js 文件中,可以添加如下代码:

------------------- ---------------- -
  -------------- ---- ------------
  ----------------------- ---------- -
    ----------------- ---------------
  ---
  --------------- --------- ------------- -
    --------------------- - - -----
    ------------- --------- -----
  ---
---

上面的代码中,socket.on('chat message') 表示当客户端发送 'chat message' 消息时,执行后面的回调函数。回调函数中的 msg 表示客户端发送的消息。在控制台输出 'message: ' + msg,然后使用 io.emit('chat message', msg) 方法将消息发送给所有客户端。

在客户端中,可以使用以下代码接收服务器发送的消息:

--- ------ - -----
--------------------------- -
  ----------------- --------- ---------------
  ----------------
  ------ ------
---
--------------- --------- ------------- -
  -------------------------------------------
---

上面的代码中,var socket = io() 表示创建一个 Socket.io 连接。$('form').submit() 表示当用户提交表单时,执行后面的回调函数。回调函数中的 socket.emit('chat message', $('#m').val()) 表示将用户输入的消息发送给服务器。socket.on('chat message') 表示当服务器发送 'chat message' 消息时,执行后面的回调函数。回调函数中的 msg 表示服务器发送的消息。$('#messages').append($('

  • ').text(msg)) 表示将消息添加到页面中。
  • 总结

    本文介绍了如何将 Socket.io 与 Express 框架配合使用,实现实时通讯功能。通过本文的介绍,读者可以了解 Socket.io 和 Express 的基本用法,并能够在自己的项目中使用 Socket.io 实现实时通讯功能。

    来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d971191886fbafa46ff0a4