用于socket.io服务器的Node.js客户端

Pre*_*vić 117 node.js socket.io

我有一个socket.io服务器运行和一个与socket.io.js客户端匹配的网页.一切正常.

但是,我想知道是否有可能在另一台机器上运行一个单独的node.js应用程序,它将充当客户端并连接到提到的socket.io服务器?

ale*_*lex 74

这应该可以使用Socket.IO-client:https://github.com/LearnBoost/socket.io-client

  • 嗯,我可能会误会,但这看起来像是在浏览器中运行的客户端.我需要的是一个独立的node.js客户端. (7认同)
  • 我很高兴它对你有用!顺便说一句,最好将您的工作示例放在问题上,而不是放在单独的答案中。 (2认同)

Azi*_*zSM 38

为前面给出的解决方案添加示例.使用socket.io-client https://github.com/socketio/socket.io-client

客户端:

//client.js
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {reconnect: true});

// Add a connect listener
socket.on('connect', function (socket) {
    console.log('Connected!');
});
socket.emit('CH01', 'me', 'test msg');
Run Code Online (Sandbox Code Playgroud)

服务器端 :

//server.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function (socket){
   console.log('connection');

  socket.on('CH01', function (from, msg) {
    console.log('MSG', from, ' saying ', msg);
  });

});

http.listen(3000, function () {
  console.log('listening on *:3000');
});
Run Code Online (Sandbox Code Playgroud)

跑 :

打开2控制台并运行node server.jsnode client.js

  • 很棒的例子!一件事,在客户端,我不相信“套接字”变量会在连接事件上传递。也许我错了,但这似乎是我在 npm socket.io-client 中看到的行为 (3认同)

Pre*_*vić 8

安装socket.io-client后:

npm install socket.io-client
Run Code Online (Sandbox Code Playgroud)

这是客户端代码的样子:

var io = require('socket.io-client'),
socket = io.connect('localhost', {
    port: 1337
});
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('private message', { user: 'me', msg: 'whazzzup?' });
Run Code Online (Sandbox Code Playgroud)

谢谢alessioalex.