Node.js笔记(二):Socket.io

问题

1️⃣ 重构赋值

  • 代码一
javascript 复制代码
const socketIO = require('socket.Io')
const Server = socketIO.Server
const server = new Server()
  • 代码二
javascript 复制代码
const {Server} = require('socket.Io')
const serve = new Server()

在这里的关键点就是{}的作用,这里有一个概念就是"重构赋值"。

其实就是对于我们导出的模块socket.Io,其实他是一个具有类的结构,他有很多方法比如socket.Io.Serversocket.Io.client等,如果我们用{Server}会直接取出.Server类的方法,同样也会使代码更加简洁。

2️⃣ new Server()与 Server(server)的区别

在使用 Socket.IO 时,new Server()Server(server) 的选择取决于你是否需要将 Socket.IO 与一个现有的 HTTP/HTTPS 服务器整合在一起。

两种方法的区别

特性 new Server() Server(server)
独立性 创建一个独立的 WebSocket 服务器 依赖于现有的 HTTP/HTTPS 服务器
端口复用 需要一个独立的端口 HTTP 和 WebSocket 可共享同一端口
适用场景 单独运行的 WebSocket 服务或简单测试 与现有 HTTP/HTTPS 服务集成
常见用途 仅处理 WebSocket 连接 WebSocket 与 REST API 或网页服务一起使用

如何选择

  • 使用 new Server()

    • 如果你仅需要运行一个简单的 Socket.IO 服务器,不涉及 HTTP 请求或 Express 路由。
    • 测试或开发阶段快速启动 WebSocket 服务。
  • 使用 Server(server)

    • 如果你的项目需要同时支持 HTTP 请求(如 REST API)和 WebSocket。
    • 如果你的服务需要通过一个端口提供综合功能(例如,Web 页面、API 和实时通信)。

总结

  1. 单独运行 :用 new Server(),适合独立 WebSocket 服务。
  2. 结合 HTTP/HTTPS :用 Server(server),适合需要同时处理 HTTP 请求和 WebSocket 的场景。

Socket.Io科普

1️⃣ 特点

-服务端和客户端的相互通信

客户端轮询

  • 事件驱动编程
  • 自动重连
  • 房间和命名空间
    • 房间可以让不同的用户进入,并让消息只在该房间广播
    • 支持多个逻辑命名空间,以便在同一个服务器上实现多个模块功能
  • 实时聊天
  • 在线协作,同步更新

2️⃣ 应用场景

  • 实时聊天应用
  • 在线写作工具
  • 试试通知系统
  • 多人在线游戏
  • 实时数据可视化

socket.on与io.on的区别

io.on监听的所有客户端与服务端的过程,一旦新客户端与服务端连接则会产生一个socket的事例,则这个socket就来管理这个连接。

相关推荐
Pith_9 小时前
模式识别与机器学习复习笔记(下)
人工智能·笔记·机器学习
QZ_orz_freedom9 小时前
后端学习笔记-缓存数据
笔记·学习
数据轨迹0019 小时前
AAAI Mesorch:频域增强+自适应剪枝相结合
经验分享·笔记·facebook·oneapi·twitter
Y007110 小时前
AT32F403AVGT7学习笔记
笔记·学习
柳鲲鹏10 小时前
WIN10禁止升级为WIN11
笔记
潇冉沐晴10 小时前
div3 970个人笔记
c++·笔记·算法
Just right10 小时前
安装RAGAS遇到的问题
笔记·python
求真求知的糖葫芦10 小时前
简明微波2-12耦合传输线分析学习笔记(五)对称均匀耦合线Z参数矩阵推导
笔记·学习·矩阵·射频工程
BlackWolfSky10 小时前
鸿蒙中级课程笔记2—状态管理V2—@ReusableV2装饰器:组件复用
笔记·华为·harmonyos
智者知已应修善业10 小时前
【输入字符串不用数组回车检测转换连续数字为整数】2024-10-26
c语言·c++·经验分享·笔记·算法