gpt4 book ai didi

javascript - Socket.IO 在本地工作,但不在外部工作

转载 作者:行者123 更新时间:2023-11-30 15:42:10 26 4
gpt4 key购买 nike


我是 Node.js 的新手,我正在尝试完成一个简单的聊天应用程序。
但我卡住了。我尝试用谷歌搜索并使用其他解决方案,但由于某种原因我无法找到它。如果有人可以帮助我,那就太好了。

我得到的错误是响应时间太长。
这是我的代码。

服务器端:

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 端口监听。如果您想从外部连接,您需要在路由器中配置端口转发到本地服务器。您的 NAT 规则中有错字。

关于javascript - Socket.IO 在本地工作,但不在外部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40634298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com