node.js - SocketIO 在 Ubuntu 服务器上不工作(不再)
问题描述
几天来,我的 socketio 客户端无法再连接到我的节点/快速应用程序(在 Digital Ocean 上)。它在我的本地机器上运行并通过 localhost 连接(使用 react-native 应用程序)时确实有效。我还实现了 REST / HTTP 功能,在“生产”服务器上运行时也可以使用。一切都像 Digital Ocean 教程中一样设置:https ://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16 -04
服务器代码:
const app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var users = [];
app.set('io', io);
app.set('users', users);
server.listen(3002, () => {console.log('listening on 3002')});
io.on('connection', async (socket) => {
console.log('User connected');
...
...
...
}
const testRoute = require('./routes/test');
app.use('/test', testRoute);
因为 HTTP 部分有效,所以我假设任何阻塞的端口都不是问题,但我找不到任何解决这个问题的方法。此外,这个问题发生在几天前,一切都按预期工作了。7
编辑1:发现问题是nginx。还不知道到底是什么,但是在没有 nginx 的情况下连接套接字 io 时,一切都按预期工作。
解决方案
推荐阅读
- google-sheets - 删除时间、符号/标点符号、将日期标准化为 d/m/yyyy 并从结果中删除重复项的公式
- php - 此字符串日期“10/05/2025”未转换为 dateformat php
- ruby-on-rails - Rails STI 子类在查询父类时被加载
- hazelcast - 启动 hazelcast 管理控制台时上下文初始化期间遇到异常
- node.js - create-react-app 不生成 package.lock 文件
- javascript - 使用类名从数组中删除
- python - 键入一个可调用的函数
- python - Python:如何使用 SQLALCHEMY 过滤数组中的 SQL 对象
- c# - 序列化时未获取 xml 输入值以列出 wcf 服务中的类
- godot - Godot - 更改区域内的瓷砖