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

yizhihongxing

下面我将详细介绍如何使用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+koa2+mysql+bootstrap搭建一个前端论坛

    这里给出一个基于node+koa2+mysql+bootstrap搭建一个前端论坛的完整攻略,包括环境配置、项目结构、代码实现等。这个项目将会实现以下功能: 用户注册和登录 发布和删除文章,并支持文章评论和点赞功能 收藏文章和个人中心页面 环境配置 首先,需要安装node.js和mysql数据库。在安装完成后,可以使用npm安装koa2的脚手架工具koa-g…

    node js 2023年6月8日
    00
  • npm ERR! code 128的错误问题解决方法

    下面是“npm ERR! code 128的错误问题解决方法”的完整攻略。 问题描述 在使用npm安装/更新模块时,有时会遇到如下错误: npm ERR! code 128 npm ERR! Command failed: git clone –depth=1 -q https://github.com/xxx/xxx.git /Users/xxx/.np…

    node js 2023年6月8日
    00
  • 如何在node.js中使用​JsonWebToken模块进行token加密

    下面是如何在node.js中使用JsonWebToken模块进行token加密的完整攻略。 安装JsonWebToken模块 在使用JsonWebToken模块前,需要先在node.js环境下安装这个模块。 打开终端,进入项目所在的目录,运行以下命令: npm install jsonwebtoken 引入JsonWebToken模块 在需要使用JsonWe…

    node js 2023年6月8日
    00
  • 10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径

    下面就让我为你详细讲解“10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径”的完整攻略。 1. 简介 本文主要介绍使用Python编写深度优先搜索算法来解决迷宫问题,并通过动画演示查找迷宫路径的过程。 2. 环境准备 首先,你需要确保自己的机器上已经安装了Python3.x版本,并安装了matplotlib库、math库、numpy库。 3. …

    node js 2023年6月8日
    00
  • Docker部署Node.js的方法步骤

    下面是Docker部署Node.js的方法步骤的完整攻略。 准备工作 安装 Docker 环境 安装 Node.js 环境 编写 Node.js 应用代码 使用 npm 初始化项目 编写 Dockerfile 文件 Dockerfile 文件用于构建 Docker 镜像,以下是一个简单的 Node.js 镜像的 Dockerfile 文件: FROM nod…

    node js 2023年6月8日
    00
  • 常见的JavaScript内存错误及解决方法

    以下是详细的攻略: 常见的JavaScript内存错误及解决方法 在编写JavaScript代码时,会经常遇到一些内存错误。这些错误往往会导致程序崩溃,甚至发生安全漏洞。本文将介绍一些常见的JavaScript内存错误及其解决方法。 1. 内存泄漏 内存泄漏是指程序在使用完内存后没有释放,导致内存资源浪费。JavaScript作为一种解释性语言,垃圾回收机制…

    node js 2023年6月8日
    00
  • js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法

    问题描述: 在IE8浏览器下,使用JavaScript编写的插件设置innerHTML时,会提示“未知运行时错误”,导致插件无法正常工作,影响用户体验。 问题解决: 该问题的根本原因是,IE8浏览器下不支持innerHTML的文本嵌套,所以在设置innerHTML时需要对文本内容进行转义,避免出现不支持的标签嵌套。具体解决方法如下: 1.使用innerTex…

    node js 2023年6月8日
    00
  • 详解从Node.js的child_process模块来学习父子进程之间的通信

    以下是详解从Node.js的child_process模块来学习父子进程之间的通信的完整攻略。该攻略旨在帮助学习Node.js的开发者理解父子进程间的通信方法,更好地完成相关的编程任务。 介绍 Node.js提供了child_process模块来实现子进程的创建和管理。利用child_process模块,开发者可以在Node.js环境下轻松地启动新的进程并与…

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