WebSocket 作为一种近年来非常受欢迎的实时通讯技术,已经得到了广泛应用。但是在开发中,我们需要一个稳定、高效的 WebSocket 服务器来满足需求,而 Express.js 作为 Node.js 生态圈中比较流行的 Web 框架,可以为我们提供方便快捷的开发体验。本文将介绍如何使用 Express.js 构建 WebSocket 服务器,并提供示例代码。
WebSocket 简介
WebSocket 是 HTML5 首次引入的标准化的新协议。它是一种全双工通信协议,在客户端与服务器端之间建立一条基于 TCP 的长连接。与 HTTP 请求-响应模式不同,WebSocket 连接可以实现服务器和客户端之间实时双向数据传输。由于它具有实时、高效、低延迟等特点,适用于在线游戏、在线交流、消息推送等场景。
基于 Express.js 的 WebSocket 服务器构建
Express.js 提供了一种方便的方式来创建 WebSocket 服务器,即利用 express-ws 这个包来实现 WebSocket 支持。它可以为 Express 应用添加 WebSocket 功能,并提供一个 WebSocket 服务器类。
我们先来看一下如何在 Express.js 中使用 express-ws:
- 安装 express 和 express-ws
--- ------- ------- ----------
- 在 Express.js 应用中添加 express-ws 并启动 WebSocket 服务器
----- ------- - ------------------- ----- --------- - ---------------------- ----- --- - ---------- --------------- ----------- ---- ---- -- - ---------------- ----- -- - --------------------- -------- --------- --------------- -------- -------- --------- --- --- ---------------- -- -- - ---------------------- ------ -- ------- --- ------------------------ ---
我们首先通过 expressWs
方法将 express 实例转换成支持 WebSocket 的实例。接着,我们定义了一个 WebSocket 路由,并在 /
路径上监听 WebSocket 连接。在 ws.on('message')
回调函数中,我们监听客户端发送的消息,然后向客户端发送“Server received message: xxx”的响应消息。
- 启动客户端,并连接到 WebSocket 服务器
----- -- - --- --------------------------------- --------- - -- -- - ---------------------- -- --------- --------- -------------- ---- --------- -- ------------ - ----- -- - --------------------- -------- -------------- ----------- -- ---------- - -- -- - ------------------------- ---- --------- --------- --
我们使用 new WebSocket()
创建一个 WebSocket 实例,然后在连接建立时发送“Hello from client”的消息。在 ws.onmessage
事件中,我们监听服务器发送的响应消息,并关闭连接。
WebSocket 的应用场景
WebSocket 适用于需要实时双向通信的应用场景,如:
- 在线游戏:能够使玩家进行实时互动,比如多人游戏中的聊天和协作。
- 在线交流:能够实现在线客服、视频会议等应用。
- 实时推送:能够实现实时推送消息,如股票行情、新闻等。
- 其他:如监控系统、物联网设备等。
总结
本文介绍了如何使用 Express.js 和 express-ws 来构建 WebSocket 服务器,并提供了详细的代码示例。WebSocket 作为实时交互的重要技术,能够帮助我们实现更好的应用体验。希望本文能够对大家有所启发和借鉴。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/646afc03968c7c53b0a70077