Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Socket IO Server to Server

Is it possible for a server to connect to another using Socket.IO and be treated like a client?

And have it join rooms, recieve io.sockets.in('lobby').emit(). And more?

The first server is also listening for connections/messages as well.

Hey Brad, here's my full .js app below for reference:

var io = require("socket.io").listen(8099); io.set('log level', 1);  io.sockets.on("connection", function (socket) {      console.log('A Client has Connected to this Server');      //Let Everyone Know I just Joined        socket.broadcast.to('lobby').emit("message",'UC,' + socket.id); // Send to everyone in Room but NOT me     socket.on("message", function (data) {  //Missing code socket2.send('message,' + data); //Forward Message to Second Server  });  socket.on("disconnect", function (data) {     //Send Notification to Second Server     //Need to figure out later      //Send Notification to Everyone     socket.broadcast.emit("message",'UD,' + socket.id ); //Send to Everyone but NOT me      //Remove user from Session ID     arSessionIDs.removeByValue(socket.id);            //Send Notification to Console     console.log("disconnecting " + arRoster[socket.id][1]); });  });  var io_client = require( 'socket.io-client' ); var socket2 = io_client.connect('http://192.168.0.104:8090'); socket2.on('connect', function () { socket2.emit('C3434M,Test'); }); 
like image 246
Taurian Avatar asked Jan 02 '13 07:01

Taurian


People also ask

Does Socket.IO need a server?

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.

How many Socket.IO connections can a server handle?

Once you reboot your machine, you will now be able to happily go to 55k concurrent connections (per incoming IP).

What is Socket.IO server?

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.


1 Answers

Yes, absolutely. Just use the Socket.IO client in your server application directly.

https://github.com/LearnBoost/socket.io-client

You can install it with npm install socket.io-client. Then to use:

var socket = io.connect('http://example.com'); socket.on('connect', function () {   // socket connected   socket.emit('server custom event', { my: 'data' }); }); 
like image 124
Brad Avatar answered Oct 08 '22 13:10

Brad