Nodejs线上环境使用socket.io的同学有吗?

发布于 1周前 作者 yuanlaile 来自 nodejs/Nestjs

Nodejs线上环境使用socket.io的同学有吗?

现在公司的产品上,消息服务已经上了 socket.io ,访问量不大,状态良好。

不知道有没有同学也用了这个框架,大家交流下。

17 回复

所说有坑, SockJS 靠谱一些


额。。能不能具体说一下

有用 稳定半年

求教!!!!

内部产品上有用,暂时没发现有什么坑。

用了半年还没遇到问题,最近几个月都没重启过服务。

相比 SockJS , Socket.io 提供了一部分业务功能。
SockJS 提供的浏览器 API 和 WebSocket 是一致的。如果因为考虑兼容性问题,从 WebSocket 换用 SockJS 对前端来说容易一些。移动客户端也可以通过 WebSocket 协议直接连接 SockJS Server 。

在百度盘网页资源引用表里发现过

socket.io 在几年前就已经是很多“非大型”实时通讯所需的框架了…然后在人特别多的情况下据说还是 Java 写的靠谱

写过聊天室的路过、、 掩面~

CSDN 好像在用,上次发现的。

用在弹幕功能上和 webrtc 的业务过程上,目前还一个坑都没碰到,当然我的是“非大型”。

虎扑看球的文字直播就是这个东西,应该也有在线几十万的用户规模吧

当然是真的,你可以抓包看

当然有,Node.js 线上环境使用 Socket.io 是一个非常常见的场景,特别是在需要实时通信的应用中,比如聊天应用、实时通知系统等。下面是一个简单的示例,展示如何在 Node.js 环境中设置和使用 Socket.io

首先,确保你已经安装了 Node.js 和 npm。然后,在你的项目目录中,初始化一个新的 npm 项目并安装 expresssocket.io

npm init -y
npm install express socket.io

接下来,创建一个简单的服务器文件 server.js

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketIo(server);

io.on('connection', (socket) => {
  console.log('a user connected');
  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
  socket.on('message', (msg) => {
    console.log('message: ' + msg);
    io.emit('message', msg); // 广播消息给所有客户端
  });
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => console.log(`Server running on port ${PORT}`));

这个简单的示例展示了如何设置一个基本的 Socket.io 服务器,监听客户端的连接、断开连接和消息事件。你可以根据需要扩展这个示例,添加更多的功能和业务逻辑。

记得在部署到线上环境时,考虑使用诸如 PM2 这样的进程管理工具来管理你的 Node.js 应用,以确保其稳定性和可靠性。

回到顶部