is there any way to run socketio as a client(not a browser, but a nodejs script)
I need to broadcast data from a server to some clients (browsers) and to another linux machine (only running nodejs to get variables, no browser)
Any ideias is welcome
Regards
Socket.IO is a library that enables low-latency, bidirectional and event-based communication between a client and a server. It is built on top of the WebSocket protocol and provides additional guarantees like fallback to HTTP long-polling or automatic reconnection.
socket-io. client is the code for the client-side implementation of socket.io. That code may be used either by a browser client or by a server process that is initiating a socket.io connection to some other server (thus playing the client-side role in a socket.io connection).
listen(port); // Create a Socket.IO instance, passing it our server var socket = io. listen(server); // Add a connect listener socket. on('connection', function(client){ console. log('Connection to client established'); // Success!
Socket.io, and WebSockets in general, require an http server for the initial upgrade handshake. So even if you don't supply Socket.io with an http server it will create one for you. The issue is that the second parameter in your io. listen(3000, '0.0.
There is a project on github which implements a socket.io client. Take a look here:
https://github.com/remy/Socket.io-node-client
var socket = new io.Socket('localhost', 8000);
socket.on('connect', function () {
console.log('yay, connected!');
socket.send('hi there!');
});
socket.on('message', function (msg) {
console.log('a new message came in: ' + JSON.stringify(msg));
});
socket.connect();
I believe you could just use socket.io-client. require that and use that in your node.js code as would in the client/browser. I also found this interesting tutorial right now => http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/
Just require('socket.io-client')
and run $ node client.js
as pointed out by Alfred. I confirm this works with socket.io-client
v1.4.8. To demonstrate, see the following code:
// client.js
var io = require('socket.io-client');
var socket = io('http://localhost:3000/');
socket.on('connect', function () {
socket.emit('echo', {msg: 'Hello universe!'}, function (response) {
console.log(response.msg);
socket.disconnect(); // otherwise the node process keeps on running.
});
});
The server:
// server.js
var io = require('socket.io')(3000);
io.on('connection', function (socket) {
socket.on('echo', function (data, response) {
response(data);
});
});
Spin up the server with $ node server.js
and then the client $ node client.js
in another terminal and watch the magic happening:
$ node client.js
Hello universe!
It works! A very convenient way for example to test your socket.io API.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With