繁体   English   中英

客户端tcp与node.js / socket.io?

[英]Client side tcp with node.js/socket.io?

我是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将显示网页发送的所有内容。 连接网页后,发出警报(“这里”); 被执行,并且nc显示http请求,但是,没有其他任何内容发送到tcp服务器,并且网页处于持续刷新状态。 为什么网页永远不会完全加载,“ hi”消息永远都不会发送,对TCP服务器的HTTP请求又如何呢? 为什么我的tcp客户端不能在我的tcp服务器上失败?

Socket.io的“使用方法”页面向您展示了确切的操作方法。

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM