这是我app.js的片段:
var
express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
server.listen(process.env.PORT || 80);
io.sockets.on('connection', function (socket) {
console.log("socket connected");
socket.emit('connection', { hello: 'from domain' });
socket.on('hello', function (data) {
console.log(data);
});
socket.on('subscribe', function (data) {
console.log('subscribe');
sendemail.subscribe(socket, data);
});
socket.on('register', function (data) {
console.log('register');
sendemail.register(socket, data);
});
});
我有2个听众,一个用于subscribe
,另一个用于register
。
当我在浏览器中打开控制台日志时,我可以看到hello
套接字发出,但是subscribe
和register
不起作用(所以基本上我的浏览器中的任何信息都是服务器不起作用,但从服务器到我的浏览器的任何工作正常。)
当我在端口80上运行套接字和服务器时,当我将套接字端口或两者都更改为81时,一切都正常。
我访问了http://websocketstest.com/
并且我没有看到任何问题,所以我猜测它不会在我的结尾,但可能在我的主机端(主机在linode.com上)。
我已与他们联系,他们说他们不会阻止任何形式的流量,他们的服务器在他们面前没有防火墙或类似的东西。
我在服务器上禁用了iptables,SELinux也被禁用了,所以我不确定发生了什么(正如我所说,如果我只是将端口更改为81,一切正常)。