未使用 express js 建立套接字 io 连接

Posted

技术标签:

【中文标题】未使用 express js 建立套接字 io 连接【英文标题】:Socket io connection not established with express js 【发布时间】:2021-12-24 00:28:04 【问题描述】:

尝试连接socket io,但无法连接

app.js 文件

var express = require('express');
var path = require('path');

var mongoose = require('mongoose');
var cookieParser = require('cookie-parser');
var index = require('./routes/index');
const api = require('./api/api');
var app = express();


const http = require('http');
const server = http.createServer(app);
const  Server  = require("socket.io");
const io = new Server(server);


app.set('view engine', 'html');

var subdomain = '';
app.use(express.json());
app.use(express.urlencoded(
  extended: true
));

app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));


app.listen(1337, () => 
    console.log('listening on *:1337 ');
);

app.use('/', index);
app.post('/sendMessageToUser' , api.sendMessageToUser);


io.on('connection', function(socket)
    console.log('a user connected');
    socket.on('disconnect', function()
        console.log('user disconnected');
    );
);

module.exports = app;

我已尝试从 POSTMAN 和 http://amritb.github.io/socketio-client-tool/ 连接

邮递员给出 404 错误:意外的服务器响应:404 握手细节 状态码:404 未找到

无法理解为什么套接字 io 连接没有发生。其他正常的 API 调用工作正常。

它最新版本的express js和socket io。

注意:我还使用 Sails js 在同一级别上创建了其他项目,该项目与套接字的连接良好。

【问题讨论】:

【参考方案1】:

您可以尝试使用服务器侦听而不是应用程序吗?

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

【讨论】:

以上是关于未使用 express js 建立套接字 io 连接的主要内容,如果未能解决你的问题,请参考以下文章

使用快速会话的套接字 IO - socket.request.res 未定义

ReferenceError:未定义套接字。套接字.io

Express Route & Socket io

在将用户连接到服务器之前,如何等待 Socket.IO 建立套接字连接?

如何使用 Socket.io 和 Express 进行集群

使用 Express JS 路由中的 Socket.io