它总是很烦人我必须总是在我的app.js中监听一个新端口,这意味着我可以访问我的网站localhost:3000和localhost:4000和我的网站上的socket.io只能使用localhost:4000。我只是把它推到了heroku,并意识到我甚至无法改变heroku上的端口
这就是我所拥有的
app.js:
var express = require("express");
var io = require('socket.io')
var port = 3000;
var app = express()
, server = require('http').createServer(app)
, io = io.listen(server);
server.listen(3000);
module.exports = io;
client.js:
var socket = io('http://localhost/');
答案 0 :(得分:3)
我能够做你想做的事:
var exp = express();
var server = require('http').Server(exp)
var io = require('socket.io')(server);
//setup stuff
server.listen(3000)
答案 1 :(得分:1)
最简单版本的express 4 + socket.io 1.0(我自己使用)是这样的:
var express = require('express');
var app = express();
var server = app.listen(3000, function() {
console.log("server started on port 3000");
});
var io = require('socket.io').listen(server);
我真的不知道为什么你的版本不起作用,但已经建议几个人遵循这个顺序(我从文档中得到)并且它对我自己和他们都有效。这可能与io
适当插入Express 4并且不使用常规http
模块有关,而是使用express
。