Javascript 部署后套接字io不工作
我没有收到错误,但是('connection',function(socket)Javascript 部署后套接字io不工作,javascript,angularjs,node.js,socket.io,Javascript,Angularjs,Node.js,Socket.io,我没有收到错误,但是('connection',function(socket)io.on('connection'){ log('a user connected',socket.client.id); });似乎不起作用 但在开发过程中,它运行良好 server.js(套接字io) var express=require('express'); var-app=express(); var http=require('http')。服务器(应用程序); var io=require('so
io.on('connection'){
log('a user connected',socket.client.id);
});当我在Linode中部署应用程序时,代码>似乎不起作用
但在开发过程中,它运行良好
server.js(套接字io)
var express=require('express');
var-app=express();
var http=require('http')。服务器(应用程序);
var io=require('socket.io')(http);
var端口=8002;
io.on('连接',函数(套接字){
console.log('a user connected',socket.client.id);//在开发中触发
});
http.listen(端口,函数(){
log('在端口上侦听的Express server'+端口);
console.log('env='+app.get('env'))+
“\n\uuuu dirname=”+\uuuu dirname+
'\n进程.cwd='+process.cwd());
});代码>我不知道这是否能解决您的特定问题,但为了在应用程序使用的同一端口上设置socket.io,您可以通过以下方式进行配置:
const express = require('express');
const app = express();
const http = require('http');
const hostname = 'localhost';
const port = 80;
// the express app is registered with the server
const server = http.createServer(app);
// setup socket.io and register it with the server
const io = require('socket.io').listen(server);
// tell the application to listen on the port specified
server.listen(port, hostname, function (err) {
if (err) {
throw err;
}
console.log('server listening on: ', hostname, ':', port);
});
现在,socket.io与应用程序在同一端口上运行。在您的生产环境中,您是否使用url中的端口?也许它希望socket.io位于端口80上。@Porlune我的服务器正在侦听端口8002,但我的应用程序正在端口82上运行。您可以设置它,以便您的express应用程序使用与socket.io相同的http服务器。如果您不想在同一个http服务器上设置socket.io,可以使用:socket.connect(');在客户端上手动设置套接字io主机。@Porlune您能否将您的想法作为答案发布,以便我能正确地跟随您。