Socket.IO在本地工作,但不是外在的

我是Node.js的新手,我试图完成一个简单的聊天应用程序。
但我卡住了。 我试图谷歌和使用其他解决scheme,但我无法find它的工作原因。 如果有人能帮助我,这将是伟大的。

我得到的错误是花了很长时间来回应。
这是我的代码。

服务器端:

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); //##### PUSH HTML FILE app.get('/', function(req, res){ res.sendFile(__dirname +'/index.html'); }); //##### START SERVER http.listen(3000, '0.0.0.0', function(){ console.log('started on port: 3000'); }); //##### USER CONNECTED io.on('connection', function(socket){ console.log('A User Connected'); //##### LOG MESSAGE socket.on('chat message', function(msg){ console.log(msg); io.emit('chat message', msg); }); //##### LOG USERNAME socket.on('set username', function(username){ console.log('NEW USER: ' + username + ' has been set!'); io.emit('set username', username); }); //#####USER DISCONNECTED socket.on('disconnect', function(){ console.log('A user disconnected'); }); }); 

客户端:

 <script src="/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-1.11.1.js"></script> <script> var socket = io(); //##### SET USERNAME $('#set_username').submit(function(){ socket.emit('set username', $('#username').val()); return false; }); //##### SET MESSAGE $('#sendmsg').submit(function(){ var msg = '['+$('#username').val()+'] ' + $('#m').val(); socket.emit('chat message', msg); $('#m').val(''); return false; }); //SET MESSAGE socket.on('chat message', function(msg){ $('#messages').append($('<li>').text(msg)); }); </script> 

提前致谢!

看看评论:

你在一个NAT后面的3000端口监听。 如果您想从外部连接,则需要在路由器中将端口转发configuration到本地服务器。 你的NAT规则中有一个错字。