websocket与node.js实现

什么是 websocket?

websoket 是一种网络通信协议,基于 tcp 连接的全双工通信协议(客户端和服务器可以同时收发信息),值得注意的是他不基于 http 协议,websocket 只有在建立连接的时候使用到 http 协议进行连接。

websoket 有如下特点:

  • 只建立一次连接,后续会一直保持连接状态
  • 没有同源限制,可以跨域
  • 可以接受发送任何类型数据
  • 协议是 ws 或 wss,wss 是加密的,增加了 ssl 协议

通过node实现websocket

提示:使用ts实现,运行代码前需要执行如下操作

  1. npm init
  2. tsc --init
  3. npm i @types/node -D
  4. npm i ws
  5. npm i @types/ws -D
typescript 复制代码
import ws from "ws";
// 创建socket服务
const server = new ws.Server({ port: 8080 });
// 监听连接的建立
const openHandle = () => { };
// 监听连接关闭
const closeHandle = () => { };
// 监听错误
const errorHandle = () => {};
const connectionHandle = (ws: ws) => {
  ws.on("message", messageHandle);
};
const messageHandle = (data: Buffer) => {
  // 需要注意的是websocket拿到的是二进制数据,需要通过toString进行转换
  console.log(data.toString());
  // 将收到的信息广播出去
  server.clients.forEach(item => {
    item.send(data.toString());
  });
};

server.on("open", openHandle);
server.on("close", closeHandle);
server.on("error", errorHandle);
server.on("connection", connectionHandle);
相关推荐
The_Ticker21 分钟前
印度股票实时行情API(低成本方案)
python·websocket·算法·金融·区块链
孟祥_成都3 小时前
复刻字节 AI 开发流:实践 Node.js 通用脚手架
前端·人工智能·node.js
2501_921649493 小时前
低延迟量化交易数据 API:从架构设计到性能优化的完整实践指南
python·websocket·金融·量化
预立科技4 小时前
SSE、WebSocket 和 HTTP
websocket·网络协议·http·sse
BLUcoding5 小时前
NVM for Windows 管理 Node.js 多版本
node.js
爱学习的程序媛5 小时前
Node.js 异步任务协作:7 种实用方案与真实项目案例
node.js·异步编程
KevinCyao5 小时前
node.js视频短信接口如何接入?使用异步非阻塞模式下发视频短信API
node.js
ZHANG13HAO5 小时前
Python 调用 Node.js(vm2 沙箱)完美方案:胶水层实战教程
开发语言·python·node.js
ZHANG13HAO5 小时前
Node.js vm2 沙箱完全教程:从入门到安全实践
node.js
yuanlaile1 天前
从入门到部署|2026年Koa全栈开发实战:覆盖Node.js、数据库、部署与云架构全链路
微服务·云原生·kubernetes·node.js·serverless·nodejs全栈开发