【发布时间】:2011-11-12 15:40:43
【问题描述】:
我已经使用 node.js/socket.io 设置了一个 tcp 服务器,但我不知道如何通过客户端连接到它。我已经尝试了http://socket.io/#how-to-use 的客户端代码,但是它向 tcp 服务器发送了一个 http 请求,并且在建立连接后,网页没有完成加载,加载圈继续移动。我可以从其他套接字得知 http 请求将所有标头发送到 tcp 服务器,但我认为连接没有建立,因为网页永远不会完全加载并且我无法将任何其他内容传递给 tcp 服务器。如何将网页的客户端建立到 tcp 服务器?
我的客户:
<script type="text/javascript" src="http://localhost:82/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:81');
socket.on('connect', function () {
socket.send('hi');
});
socket.send('hi1');
socket.emit('hi2');
</script>
我的服务器:
var app = require('net')
, fs = require('fs')
var sockets_list = [];
var server = app.createServer(function (socket) {
sockets_list.push(socket);
socket.write("Echo server\r\n");
socket.on('data', function(data) {
console.log(data);
for (var i = 0; i < sockets_list.length; i++) {
sockets_list[i].write(data);
}
});
socket.on('end', function() {
var i = sockets_list.indexOf(socket);
sockets_list.splice(i, 1);
});
});
server.listen(81);
不用说,'hi' 消息永远不会到达 tcp 服务器。
【问题讨论】:
标签: javascript node.js tcp websocket socket.io