我收到错误:
端口错误:无法建立连接。接收端没有 存在。
但我无法弄清楚如何解决这个问题,有什么帮助吗?这是我的代码:
服务器(app.js)
var app = require('express')(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(8088);
//routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('set nickname', function (name) {
socket.set('nickname', name, function () { socket.emit('ready'); });
});
socket.on('msg', function () {
socket.get('nickname', function (err, name) {
console.log('Chat message by ', name);
});
});
});
客户端(index.html)
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8088');
socket.on('news', function (data) {
console.log(data);
});
socket.on('connect', function () {
socket.emit('set nickname', prompt('What is your nickname?'));
socket.on('ready', function () {
console.log('Connected !');
socket.emit('msg', prompt('What is your message?'));
});
});
</script>
修改
我从客户端删除了socket.connect()
,但仍然收到相同的错误
答案 0 :(得分:1)
我从来没有在客户端使用过socket.connect()而且我从未见过这个错误,所以我认为这是你的错误所在。
客户端上的
var socket = io.connect('http://localhost:8088')
应该是你需要调用来建立连接的唯一东西,es ebohlman在客户端上声明没有连接事件,如果你想听那个事件,你必须自己在服务器端发出它。
io.sockets.on('connection',function(){
socket.emit('connect',{...})
})
在http://socket.io/的首页上有一个简单的示例,可以帮助您入门。
答案 1 :(得分:0)
AFAIK,iosocket的connect
事件在客户端建立连接时会在服务器端被触发,而不是在与服务器成功连接时在客户端被触发的事件。如果我是对的,那么您的客户端代码应该响应“新闻”事件(它应该在服务器确认连接时看到)。
答案 2 :(得分:0)
尝试端口3000或5000而不是8088
答案 3 :(得分:0)
他的代码看起来很好
客户端socket.on("connect")
在连接到指定服务器时触发
这可能是一些港口问题。尝试不同的端口
以下是客户端和服务器端的一些事件
https://github.com/LearnBoost/socket.io/wiki/Exposed-events
答案 4 :(得分:0)
这些错误与您的代码无关,因此您可以忽略它们。它们不会干扰您的代码。它们源自浏览器扩展,通常尝试连接到本地文件。可以找到针对该特定错误的更多帖子。这就是我发现的方式!