Sham
Sham

Reputation: 114

How to use cluster on socket.io-client?

I want to use cluster on both side (Server and Client). I have got success on server side, but unable to do on client side. I am using node.js on both (Server side and Client side).

I am using below code on server side

var express = require('express'),
        cluster = require('cluster'),
        sio = require('socket.io');
var port = 3000,
        num_processes = require('os').cpus().length;
if (cluster.isMaster) {
    for (var i = 0; i < num_processes; i++) {
        cluster.fork();
    }
} else {
    var app = new express();
    var server = app.listen(port),
            io = sio(server);
    io.on('connection', function (client) {
        client.on('evnt', function (data) {
            console.log('evnt' + process.pid, data);
        });
    });
}

and on client side this one

var url = 'http://localhost:3000/';
var socket = require('socket.io-client')(url);
socket.on('connect', function () {
    console.log('Connected with ', url);
    setInterval(function () {
        socket.emit('evnt', {sham: 'sakdf'});
    }, 500)
});
socket.on('disconnect', function () {
    console.log('Disconnected');
});

Upvotes: 4

Views: 348

Answers (1)

Sham
Sham

Reputation: 114

There is no need of cluster module on client side, simply we can create multiple process or child process if needed. We use cluster on server side because we have to bind multiple processes on same IP and port.

Upvotes: 2

Related Questions