1
我是新来的Node.js/socket.io所以我真的不知道我在做什么,但我得为我的服务器端:客户端tcp与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);
所以TCP服务器的工作原理当我使用nc localhost 81并发送数据时。但是,我不知道如何使用脚本标记从服务器端连接并发送数据到网站上的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本地主机81占据另一个插座。所以nc显示网页发送的所有内容。连接网页后,警报('here');被执行并且nc显示http请求,但是没有其他东西被发送到tcp服务器,并且网页处于持续刷新状态。为什么网页永远不会完全加载,'hi'消息永远不会被发送,以及http请求到tcp服务器的情况如何?为什么我的tcp客户端不能通过我的tcp服务器失败?
发送一个http请求到tcp服务器,这有什么关系吗?同样在我连接后,刷新循环继续移动,就像网页从未完成移动一样......发生了什么? – Derek
您无法从网页建立* raw * TCP连接;没有允许你打开任意套接字的浏览器工具。 Socket.io提供了一个模拟[WebSocket](http://en.wikipedia.org/wiki/WebSocket)的跨浏览器抽象层,它允许TCP类似的全双工消息传递。 – josh3736
k thx为我解释第一部分,但我仍然困惑为什么当我尝试连接到我的tcp服务器网页从未完全结束,我不能发送任何东西。上面添加了新的代码。 – Derek