尝试使用socket.io创build一个简单的套接字

我收到错误:

端口错误:无法build立连接。 接收结束不存在。

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

服务器(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() ,但仍然得到相同的错误

我从来没有在客户端使用socket.connect(),我从来没有看到这个错误,所以我认为这是你的错误来自哪里。

在客户端

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

应该是唯一需要打电话来build立连接,es ebohlman在客户端表示没有连接事件,如果你想听那个事件,你必须在服务器端自己发出它。

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

http://socket.io/的首页有一个简单的例子,它应该让你开始&#x3002;

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

尝试端口3000或5000而不是8088

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

这些错误与你的代码无关,所以你可以忽略它们。 他们不会干扰你的代码。 他们起源于浏览器扩展,通常尝试连接到本地文件。 更多的post可以find具体的错误。 这就是我发现的!