Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 部署后套接字io不工作_Javascript_Angularjs_Node.js_Socket.io - Fatal编程技术网

Javascript 部署后套接字io不工作

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

我没有收到错误,但是('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('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您能否将您的想法作为答案发布,以便我能正确地跟随您。