【问题标题】:How to connect to tcp server via node.js/socket.io from client?如何从客户端通过 node.js/socket.io 连接到 tcp 服务器?
【发布时间】: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


    【解决方案1】:

    我想这是跨域请求问题。您从 localhost:82 加载页面,但向 localhost:81 发出请求。

    【讨论】:

      【解决方案2】:

      聚会有点晚了,也是我对stackoverflow的第一个回答。

      我最初开始使用 socket.io 时遇到了同样的问题。问题在于服务器端代码,您不需要 socket.io 模块:

      var io = require('socket.io');
      
      io.on('connection',function(socket){
          console.log('socket connected successfully');
      
          socket.on('data',function(data){
              console.log('data',data);
          });
      }
      

      然后,一旦服务器启动并运行,您就向它请求脚本“socket.io/socket.io.js”:

      <script type="text/javascript" src="http://localhost:81/socket.io/socket.io.js">
      

      我不相信您可以将 nodejs 的核心“网络”模块与 socket.io 的客户端库混合/匹配。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2014-10-22
        • 2021-11-18
        • 1970-01-01
        • 2021-04-02
        • 1970-01-01
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多