NodeJs 实现简单WebSocket即时通讯的示例代码

下面我将详细介绍如何使用Node.js实现简单的WebSocket即时通讯,包括以下步骤:

步骤一:创建WebSocket服务器

首先,我们需要使用Node.js创建一个WebSocket服务器,代码如下:

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });

server.on('connection', (ws) => {
  console.log('client connected');

  // 客户端发送消息时触发
  ws.on('message', (message) => {
    console.log(`received: ${message}`);
    // 向客户端发送消息
    ws.send(`you sent: ${message}`);
  });
});

上述代码使用了ws模块创建了一个WebSocket服务器,指定端口8080。当有客户端连接到服务器时,触发connection事件,并打印客户端连接的信息。同时,当客户端发送消息时,触发message事件,并打印收到的消息。最后向客户端发送回复消息。

步骤二:创建WebSocket客户端

使用ws模块创建WebSocket客户端,代码如下:

const WebSocket = require('ws');
const client = new WebSocket('ws://localhost:8080');

client.on('open', () => {
  console.log('connected to server');

  // 向服务器发送消息
  client.send('hello, server!');
});

client.on('message', (message) => {
  console.log(`received: ${message}`);
});

上述代码创建了一个WebSocket客户端,并连接到服务器。当客户端成功连接到服务器时,触发open事件,并打印连接成功的信息,同时向服务器发送一条消息。当客户端接收到服务器发来的消息时,触发message事件,并打印接收到的消息。

示例说明

下面演示两个基本的示例,一个是客户端向服务器发送消息,服务器回复消息;另一个是服务器向客户端广播消息。

示例一:客户端向服务器发送消息,服务器回复消息

  1. 打开两个终端窗口,分别执行以下命令:

node server.js
node client.js

这样就会启动一个WebSocket服务器和一个WebSocket客户端。

  1. 在客户端终端窗口中输入一条消息,例如:hello, server!,然后按回车键。客户端就会将该消息发送给服务器。

$ node client.js
connected to server
received: you sent: hello, server!

服务器会打印出客户端发送的消息,并将该消息原样回复给客户端。

  1. 在客户端终端窗口中输入另一条消息,例如:how are you?,然后按回车键。客户端又会将该消息发送给服务器。

$ node client.js
connected to server
received: you sent: hello, server!
received: you sent: how are you?

服务器同样会打印出客户端发送的消息,并将该消息原样回复给客户端。

示例二:服务器向客户端广播消息

  1. 打开两个终端窗口,分别执行以下命令:

node server.js
node client.js

这样就会启动一个WebSocket服务器和一个WebSocket客户端。

  1. 在服务器的终端窗口中输入一条消息,例如:hello, everyone!,然后按回车键。服务器就会将该消息广播给所有连接到服务器的客户端。

$ node server.js
client connected
received: hello, everyone!
client connected
received: hello, everyone!

所有已连接到服务器的客户端都会接收到服务器广播的消息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJs 实现简单WebSocket即时通讯的示例代码 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 利用Node.js如何实现文件循环覆写

    实现文件循环覆写可以通过Node.js的文件系统模块(fs)来完成。具体步骤如下: 引入fs模块 使用require语句将fs模块引入到项目中: const fs = require(‘fs’); 实现文件循环覆写函数 function overwriteFile(filePath, data, retries) { if (retries === 0) {…

    node js 2023年6月8日
    00
  • 微信小程序云函数添加数据到数据库的方法

    当我们希望在微信小程序中将数据存储到数据库中时,可以通过微信小程序的云开发来实现。具体来说,我们可以通过云函数来操作数据库。下面是添加数据到数据库的方法: 创建云函数 我们首先需要在小程序云开发控制台中创建一个云函数。可以使用命令行工具或者在控制台中手动创建云函数。对于初学者,建议使用控制台创建云函数。创建成功后,即可在 “cloudfunctions” 中…

    node js 2023年6月8日
    00
  • Node.js中出现未捕获异常的处理方法

    当在Node.js环境中发生未捕获的异常时,我们可以采用以下方法进行处理。 1. process 对象的 ‘uncaughtException’ 事件 当Node.js应用程序中发生未捕获的异常时,如果没有对其进行处理,应用程序将会崩溃。我们可以通过对 process 对象的 ‘uncaughtException’ 事件进行监听来处理这种异常情况。代码如下:…

    node js 2023年6月8日
    00
  • Node 使用express-http-proxy 做api网关的实现

    环境准备 首先需要安装Node.js和express模块,打开命令行工具执行以下命令: npm install node npm install express 安装express-http-proxy 执行以下命令安装express-http-proxy模块: npm install express-http-proxy 添加代理服务 在express应用…

    node js 2023年6月8日
    00
  • 关于js中for in的缺陷浅析

    关于js中for in的缺陷浅析 1. for in 的作用 for in 是 JavaScript 中用来遍历对象属性的一种语句,其语法是: for (variable in object) { code block to be executed } 其中,变量 variable 是用来存储对象的属性名的,object 是需要遍历的对象,代码块中包含了对每…

    node js 2023年6月8日
    00
  • 纯JS 绘制数学函数

    下面就让我来为您详细讲解“纯JS 绘制数学函数”的完整攻略。 什么是纯JS 绘制数学函数? 纯JS 绘制数学函数是一种使用 JavaScript 语言编写程序,通过绘制图形的方式来展示数学函数的方法。使用此方法,可以实现用代码来绘制各种不同的数学函数图形,而无需借助于任何第三方库和工具。 绘制数学函数的基本原理 首先需要明确的是,绘制数学函数的本质就是将数学…

    node js 2023年6月8日
    00
  • Underscore.js常用方法总结

    Underscore.js常用方法总结 简介 Underscore.js是一个JavaScript实用库,提供了一整套函数式编程的实用功能,同时提供了对JavaScript原生对象的高效操作。它是一个小巧的库,拥有丰富的API和易于使用的语法,适合于前端开发者使用。 常用方法总结 1. _.each 方法描述: _.each(list, iteratee, …

    node js 2023年6月8日
    00
  • 详解Node.js 中使用 ECDSA 签名遇到的坑

    详解Node.js 中使用 ECDSA 签名遇到的坑 什么是ECDSA ECDSA,全称椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm),是一种基于椭圆曲线密码学的签名算法。与传统的RSA、DSA等算法相比,ECDSA在强度和速度方面都有很大的优势。 Node.js中使用ECDSA签名 在Node.…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部