介绍
Websocket 是一种在客户端和服务器之间建立实时双向通信的协议。与 HTTP 不同的是,它可以保持长连接并实现数据的实时推送。在前端开发中,Websocket 被广泛应用于聊天室、多人协作和在线游戏等场景。
Express.js 是一款知名的 Node.js Web 框架,提供了处理 HTTP 请求和响应的强大功能。本文将介绍如何使用 Express.js 创建 Websocket 服务器来实现实时通信。
前置知识
本文假设你已经掌握了以下知识:
- Node.js 基础知识
- Express.js 基础知识
- Websocket 协议基础知识
安装依赖
为了使用 Express.js 创建 Websocket 服务器,我们需要先安装一些依赖。
npm install --save express ws
其中,express
是 Express.js 框架,用于处理 HTTP 请求和响应;ws
是 Node.js 的一个 Websocket 实现,用于处理 WebSocket 协议。
创建 Express.js 应用
下面是使用 Express.js 创建 Websocket 服务器的示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- --------- - -------------- ----- --- - ---------- ----- ------ - ----------------------- ----- --- - --- ------------------ ------ --- -------------------- ---- -- - ---------------- --------- -- - --------------------- -------- ------------- ------------ ----- ------------- --- --------------- ------- -- --- --------- ---------- --- ------------ ----- ---- -- - ---------------- --------- --- ------------------- -- -- - ---------------- ------- -- ------------------------ ---
其中,app
是 Express.js 应用;server
是使用该应用创建的 HTTP 服务器;wss
是使用 server
创建的 WebSocket 服务器。
在 wss.on('connection', ...)
函数中,我们监听了新连接的事件,当有新的连接接入时,该函数将被调用。我们在该函数中监听了消息事件,并在收到消息时打印该消息并将其原封不动地发送回去,实现了一个简单的回射服务器。
客户端测试
为了测试我们的 WebSocket 服务器,我们可以使用浏览器内置的 WebSocket 实现来发送和接收消息。下面是示例代码:
-- -------------------- ---- ------- --------- ----- ------ ------ ---------------- ------------ ------- ------ ------ ----------- ---------- -- ------- ----------------------- --- ------------------- -------- ----- ----- - --------------------------------- ----- ---- - -------------------------------- ----- -------- - ------------------------------------ ----- -- - --- --------------------------------- ------------ - ------- -- - ----- -- - ----------------------------- -------------- - ----------- ------------------------- -- ------------------------------ -- -- - ----- ------- - ------------ ----------------- ----------- - --- --- --------- ------- -------
在浏览器中打开该页面,我们可以看到一个输入框和一个按钮,以及一个用于显示接收消息的列表。当我们在输入框中输入一条消息并点击发送按钮时,该消息会被发送到 WebSocket 服务器,并在服务器端被打印和原封不动地返回。我们可以在客户端的页面中看到收到的消息。
总结
本文介绍了如何使用 Express.js 创建 Websocket 服务器,以实现实时通信。我们使用了 Express.js 应用和 WebSocket 服务器,并利用浏览器内置的 WebSocket 实现进行了测试。希望本文能对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6450d653980a9b385b9bb0a0