1
我是Node.js的新手,我試圖完成一個簡單的聊天應用程序。
但我卡住了。我試圖谷歌和使用其他解決方案,但我無法找到它的工作原因。如果有人能幫助我,那將會很棒。Socket.IO在本地工作,但不是externally
即將發生的錯誤是,它花了很長時間來回應。
這是我的代碼。
服務器端:
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後面。 – Turrican
在這裏黑暗中拍攝,我感覺服務器上的端口3000位於防火牆後面,或者像@Turrican所說的那樣,您可能需要在路由器上設置NAT。TCP/IP沒有任何區別在本地主機(127.0.0.1)之間,或任何其他IP。而且您在所有接口0.0.0.0上偵聽,所以這不是您的節點應用程序問題。 – Keith