如何用 Express.js 实现 Websockets

Websockets是一种基于TCP连接的双向通信协议,可以在客户端和服务器之间建立实时的、持续的、双向的通信通道。这种通信模式适合实现一些需要实时性和即时性的场景,比如在线聊天、协同编辑等。

在本文中,我们将通过Express.js来实现Websockets。Express.js是一个流行的Node.js web应用程序框架,它可以帮助我们快速搭建web应用并实现各种功能。让我们开始吧。

前置条件

在开始之前,您需要安装Node.js和Express.js。

创建一个Express.js应用程序

我们从创建一个基本的Express应用程序开始,以便于我们能够添加Websockets支持。打开命令行窗口并输入以下命令:

接下来,打开index.js文件并将以下代码复制到该文件中:

这个应用程序包含一个HTTP服务器,运行在3000端口上,并返回一个index.html文件作为根路径的响应。接下来,我们将为我们的应用程序添加Websockets支持。

使用Websockets

现在来看一下如何在Express.js应用程序中使用Websockets。我们将使用wsnpm模块来实现此功能。打开命令行窗口并输入以下命令:

接下来,我们需要对我们的Express应用程序进行一些修改以支持Websockets。打开index.js文件并将以下代码添加到文件底部。

这段代码中,我们创建了一个WebSocket服务器,并在8080端口监听连接。当一个客户端连接上Websocket服务器后(使用浏览器客户端可以打开该链接),我们将在服务器端打印“New client connected”的消息。当客户端发送消息时,我们将在服务器端打印“Client message:message”的消息。当客户端断开连接时,我们将在服务器端打印“Client disconnected”消息。

同时,我们使用ws.send方法发送“Welcome to the chat room!”消息到客户端。现在我们已经完成了我们的应用程序设置。让我们启动它并测试。

测试

我们使用以下命令来启动我们的Express应用程序:

在浏览器中打开http://localhost:3000链接,应该会看到一个带有“Welcome to Express.js websockets”标题的空页面。接下来,启动一个新终端,输入以下命令:

这个命令将启动一个WebSocket客户端,连接到我们刚刚设置的WebSocket服务器。在客户端输入任何消息,例如:“hello”,将输出以下内容:

在服务器端,查看命令行终端,将会看到以下消息:

恭喜您,您已经成功地使用Express.js实现了Websockets。

总结

在这篇文章中,我们使用Express.js和ws模块展示了如何实现Websockets。通过使用这种技术,我们现在可以轻松地构建实时的和基于事件的应用程序。

只要我们有一个WebSocket服务器和客户端,我们就可以在不同的平台上实现Websockets通信。在构建在线聊天室、游戏、协同编辑器等实时性的应用程序时,Websockets是一个非常有用的技术。希望这篇文章能够帮助您更好地理解如何在Express.js应用程序中使用Websockets。

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


纠错反馈