如何使用socket.io将TCP消息发送到远程服务器

时间:2018-08-14 18:58:17

标签: node.js tcp socket.io

我和我的朋友都在使用同一个带开放端口的wifi网络。我的朋友正在监听8000端口,我想向他发送一条消息。 如何使用node和socket.io实现该目标?非常感谢

1 个答案:

答案 0 :(得分:0)

有很多方法可以设置一个简单的Messenger,标准方法是在您或您朋友的计算机上设置一个单独的socket.io服务器,如下所示:

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(8000);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.on('connection', function (socket) {
  console.log("user connected!")
  socket.on('message', function (message) {
    //Sends message to all connected sockets
    socket.broadcast.emit("message")
  });
});

然后您的index.html应该具有一些用于连接服务器和发送消息的代码:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://server-ip-or-domain-name:port');
  socket.on('message', function (message) {
    //processing incoming message here
    console.log(message);
  });

  function sendMessage(msg){
      //sends message to server
      socket.emit("message", msg);
  }
</script>

在这种设置下,您和您的朋友都应该可以访问服务器计算机。使用ping进行调试。

p.s。还没有测试上面的代码,但这就是想法。