我是 node.js/socket.io 的新手,所以我真的不知道我在做什么,但我在服务器端有这个:
var app = require('net')
, fs = require('fs')
var server = app.createServer(function (socket) {
socket.write("Echo server\r\n");
socket.pipe(socket);
socket.on('data', function(data) {
console.log(data);
});
});
var io = require('socket.io').listen(server)
server.listen(81);
所以当我使用 nc localhost 81 并向它发送数据时,tcp 服务器工作。但是,我不知道如何使用脚本标记从服务器端连接网站上的 tcp 服务器并将数据发送到该服务器。那么,客户端将如何连接到此 tcp 服务器并向其发送数据?
谢谢!
新增代码:
服务器:
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);
客户:
<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');
alert('here');
</script>
发生了什么:
我有一个网页加载需要一个套接字和一个 nc localhost 81 占用另一个套接字。所以 nc 显示网页发送的所有内容。连接网页后, alert('here');被执行并且nc显示了http请求,但是,没有其他任何东西被发送到tcp服务器,并且网页处于不断刷新状态。为什么网页永远不会完全加载,永远不会发送“hi”消息,以及对 tcp 服务器的 http 请求呢?为什么我的 tcp 客户端不会因我的 tcp 服务器而失败?
最佳答案
Socket.io 的 how to use页面向您展示了具体的操作方法。
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost/');
socket.on('connect', function () {
socket.send('hi');
socket.on('message', function (msg) {
// my msg
});
});
</script>
关于html - 带有 node.js/socket.io 的客户端 tcp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340475/