NodeJS多种创建WebSocket监听的方式(三种)

下面是NodeJS多种创建WebSocket监听的方式的完整攻略。

标准 WebSocket 创建方式

  1. 在 Node.js 中使用 WebSocket 的第一步是将其作为依赖项添加到您的项目中。您可以使用以下命令执行此操作:
npm install --save websocket
  1. 在您的项目代码中,您需要加载 WebSocket 模块。这可以通过以下代码行完成:
const WebSocket = require('websocket').server;
  1. 可以使用以下代码创建 WebSocket 服务器并将其绑定到具有“http”模块的 HTTP 服务器上:
const http = require('http');
const server = http.createServer((request, response) => {});

const wsServer = new WebSocket({
  httpServer: server
});
  1. 可以使用 wsServer 上的回调函数来处理 WebSocket 连接:
wsServer.on('request', (request) => {
  const connection = request.accept(null, request.origin);

  connection.on('message', (message) => {
    if (message.type === 'utf8') {
      console.log(`Received Message: ${message.utf8Data}`);
      connection.sendUTF(message.utf8Data);
    } else if (message.type === 'binary') {
      console.log(`Received Binary Message of ${message.binaryData.length} bytes`);
      connection.sendBytes(message.binaryData);
    }
  });

  connection.on('close', (reasonCode, description) => {
    console.log(`Peer ${connection.remoteAddress} disconnected.`);
  });
});

使用 Socket.IO 创建 WebSocket

  1. 使用以下命令将 Socket.IO 添加为项目依赖项:
npm install socket.io
  1. 下面是使用 Socket.IO 建立 WebSocket 并向客户端发送消息的代码示例:
const server = require('http').createServer();
const io = require('socket.io')(server);

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });

  socket.on('chat message', (msg) => {
    console.log(`message: ${msg}`);
    io.emit('chat message', msg);
  });
});

server.listen(3000, () => {
  console.log('listening on *:3000');
});

使用 ws 创建 WebSocket

  1. 使用以下命令将 ws 添加为项目依赖项:
npm install ws
  1. 下面是使用 ws 建立 WebSocket 并向客户端发送消息的代码示例:
const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
  ws.on('message', (message) => {
    console.log(`Received message => ${message}`);
    ws.send(`Hello, you sent => ${message}`);
  });
  ws.send('Hi there, I am a WebSocket server');
});

以上就是三种使用 Node.js 创建 WebSocket 的方式的完整攻略,其中包含了至少两个代码示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJS多种创建WebSocket监听的方式(三种) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • javascript相关事件的几个概念

    让我详细讲解一下“javascript相关事件的几个概念”。 入门 在学习 Javascript 的时候,很多事件都是离不开的。但在学习它们之前,先来了解一下事件的概念。一个事件是指一个可以被 JavaScript 感知并可以被 JavaScript 处理的用户或浏览器的动作。这个动作可以是一些用户的操作,比如鼠标单击、键盘按键、浏览器窗口的大小改变等等。 …

    JavaScript 2023年6月10日
    00
  • Java日常练习题,每天进步一点点(34)

    《Java日常练习题,每天进步一点点(34)》是一篇Java编程练习题目的博客文章。该文中提供了10个常见的Java编程问题,供读者进行练习,提高编程水平。以下是对于该文章的详细讲解攻略: 标题 标题使用 # 号,# 号的数量代表标题级数 需要在每个标题后面空一行 代码块 代码块使用 “` 或者缩进四个空格 代码块中的代码可以被正确地渲染 内容 内容中需要…

    JavaScript 2023年5月28日
    00
  • 2019年百度前端工程师面试题(附答案)

    关于 “2019年百度前端工程师面试题(附答案)” 的完整攻略,我会从以下几个方面进行讲解: 答题技巧 题目分类 示例讲解 1. 答题技巧 首先,我们需要了解一些答题技巧,来帮助我们更好地回答面试题。 首先,阅读题目时一定要仔细,理解清楚题目要求和限制。 其次,如果遇到复杂的题目或者不理解的概念,不要惊慌,可以先思考一下如何简化问题,或者查看相关的资料。 除…

    JavaScript 2023年5月19日
    00
  • JS中prototype的用法实例分析

    接下来我将为你详细介绍“JS中prototype的用法实例分析”的完整攻略。 什么是Prototype JS中的每一个对象都有一个Prototype链,它指向了另一个对象,这个对象叫做“原型”,这样就可以实现某些属性和方法的继承。 当我们需要给一个JS对象添加属性或方法时,可以通过prototype来实现。在使用prototype属性时,我们需要明确两点: …

    JavaScript 2023年6月11日
    00
  • 需要牢记的JavaScript基础知识

    下面是需要牢记的JavaScript基础知识的完整攻略: JavaScript基础知识 数据类型 JavaScript有7种基础数据类型: 布尔值(Boolean) 数字(Number) 字符串(String) null undefined Symbol 对象(Object) 其中,null和undefined是特殊的数据类型,常用于表示空值和未定义值。 示…

    JavaScript 2023年5月27日
    00
  • 极力推荐10个短小实用的JavaScript代码段

    接下来我来为大家讲解极力推荐10个短小实用的JavaScript代码段的攻略。 一、介绍 首先我们需要明确,这10个短小实用的JavaScript代码段主要是针对于前端开发者,能够帮助他们提高开发效率、优化用户体验、提供更好的交互和视觉效果。 这10个代码段分别是:1. 获取URL参数2. 倒计时3. 防抖4. 节流5. 数组去重6. 判断数组是否相等7. …

    JavaScript 2023年5月18日
    00
  • JS搜狐面试题分析

    下面我将为你详细讲解“JS搜狐面试题分析”的完整攻略。 1. 题目分析 首先,需要了解这道面试题的要求和限制。根据题目描述,我们需要完成以下几个任务: 输入一个数字n,生成一个由n个随机数字组成的数组arr; 计算数组中所有数值的平均数avg,并以最多两位小数的形式输出; 找出数组中最接近平均数的数字,并输出其值。 2. 解题思路 解题思路可分为以下几个步骤…

    JavaScript 2023年5月28日
    00
  • JS函数节流和函数防抖问题分析

    JS函数节流和函数防抖问题分析 函数节流 函数节流是指在一定时间内只执行一次该函数。即使该函数被连续调用多次,但在规定的时间内,它只会执行一次。 函数节流比较适用于一些高频率触发的操作,例如: 滚动页面时触发的事件(scroll事件); 缩放浏览器窗口时触发的事件(resize事件); 拖动元素时触发的事件(drag事件)等。 下面是一个函数节流的示例代码:…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部