2

我收到错误消息:

端口错误:无法建立连接。接收端不存在。

但我不知道如何解决这个问题,有什么帮助吗?这是我的代码:

服务器 (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()从客户端中删除但仍然收到相同的错误

4

5 回答 5

1

我从未在客户端使用过 socket.connect() ,也从未见过该错误,所以我认为这就是您的错误的来源。

在客户端

var socket = io.connect('http://localhost:8088')

应该是您建立连接唯一需要调用的东西,es ebohlman 在客户端表示没有连接事件,如果您想监听该事件,您必须自己在服务器端发出它。

io.sockets.on('connection',function(){
  socket.emit('connect',{...})
})

http://socket.io/的首页上有一个简单的示例,应该可以帮助您入门。

于 2012-09-19T12:43:46.497 回答
0

尝试端口 3000 或 5000 而不是 8088

于 2013-01-04T19:48:39.187 回答
0

他的代码看起来不错。
在客户端socket.on("connect")连接到指定服务器时触发。
这可能是一些端口问题。尝试不同的端口。
以下是客户端和服务器端的一些事件
https://github.com/LearnBoost/socket.io/wiki/Exposed-events

于 2013-01-04T22:00:17.880 回答
0

这些错误与您的代码无关,因此您可以忽略它们。它们不会干扰您的代码。它们源自浏览器扩展,通常尝试连接到本地文件。对于该特定错误,可以找到更多帖子。我就是这样发现的!

于 2013-06-27T20:42:53.030 回答
0

AFAIK,iosocket 的connect事件是在客户端建立连接时在服务器端触发的事件,而不是在成功连接到服务器时在客户端触发的事件。如果我是对的,您的客户端代码应该响应“新闻”事件(它应该在服务器确认连接时看到)。

于 2012-09-19T08:37:20.133 回答