How to use the ws.Server.prototype function in ws

To help you get started, we’ve selected a few ws examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github erikhazzard / realtime-chat-benchmarks / websockets / ws / amqp-rooms-messages / server-single-amqp-rooms-messages.js View on Github external
*
 *  This constructs a queue for each client and publishes messages
 *  back through the queue because it's subscribed to a room's exchange
 *
 */

require("http").globalAgent.maxSockets = Infinity;
var colors = require('colors');
var winston = require('winston');
var async = require('async');
var _ = require('lodash');
var amqp = require('amqp');
var WebSocketServer = require('ws').Server;
var logMemUsage = require('../../../util/mem-usage');

WebSocketServer.prototype.broadcast = function(data) {
    // Broadcasts messages to all clients
    console.log("Broadcasting " + data + " to " + numClients + " clients.");

    for (var i in this.clients) {
        this.clients[i].send(data);
    }

    console.log("Finished broadcasting " + data + " to " + numClients + " clients.");
};

var logger = new (winston.Logger) ({
    transports: [
        new (winston.transports.File) ({
            filename: 'logs/clients-messages-single.log',
            level: 'verbose'
        })
github erikhazzard / realtime-chat-benchmarks / websockets / ws / amqp-rooms-messages / server-cluster-amqp-rooms-messages.js View on Github external
*  back through the queue because it's subscribed to a room's exchange
 *
 */

require("http").globalAgent.maxSockets = Infinity;
var colors = require('colors');
var winston = require('winston');
var async = require('async');
var _ = require('lodash');
var amqp = require('amqp');
var WebSocketServer = require('ws').Server;
var logMemUsage = require('../../../util/mem-usage');
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

WebSocketServer.prototype.broadcast = function(data) {
    // Broadcasts messages to all clients
    console.log("Broadcasting " + data + " to " + numClients + " clients.");

    for (var i in this.clients) {
        this.clients[i].send(data);
    }

    console.log("Finished broadcasting " + data + " to " + numClients + " clients.");
};

var logger = new (winston.Logger) ({
    transports: [
        new (winston.transports.File) ({
            filename: 'logs/clients-messages-single.log',
            level: 'verbose'
        })
github arcweb / chappiecast / app.js View on Github external
var WebSocketServer = require("ws").Server;
var http = require("http");
var express = require("express");
var app = express();
var port = process.env.PORT || 5000;
var multer  = require('multer');
var fs = require('fs');

WebSocketServer.prototype.broadcast = function broadcast(data) {
  this.clients.forEach(function each(client) {
    client.send(JSON.stringify(data));
  });
};

// Configure the multer.
app.use(multer({ dest: './uploads/',
 rename: function (fieldname, filename) {
    return filename;
  },
  onFileUploadStart: function (file) {
    console.log(file.originalname + ' is starting ...')
  },
  onFileUploadComplete: function (file) {
    console.log(file.fieldname + ' uploaded to  ' + file.path)
}
github erikhazzard / realtime-chat-benchmarks / websockets / ws / amqp-rooms-feed / server-single-amqp-rooms-feed.js View on Github external
*  back through the queue because it's subscribed to a room's exchange
 *
 *  File is identical to ../amqp-rooms-messages/server-single-amqp-rooms-messages
 *
 */

require("http").globalAgent.maxSockets = Infinity;
var colors = require('colors');
var winston = require('winston');
var async = require('async');
var _ = require('lodash');
var amqp = require('amqp');
var WebSocketServer = require('ws').Server;
var logMemUsage = require('../../../util/mem-usage');

WebSocketServer.prototype.broadcast = function(data) {
    // Broadcasts messages to all clients
    console.log("Broadcasting " + data + " to " + numClients + " clients.");

    for (var i in this.clients) {
        this.clients[i].send(data);
    }

    console.log("Finished broadcasting " + data + " to " + numClients + " clients.");
};

var logger = new (winston.Logger) ({
    transports: [
        new (winston.transports.File) ({
            filename: 'logs/clients-messages-single.log',
            level: 'verbose'
        })
github tadast / webattle.js / server.js View on Github external
var WebSocketServer = require('ws').Server;
var Serializer = require('./lib/serializer.js');
var Config = require('./lib/config.js');
var Player = new require('./lib/player.js');

var server = connect.createServer();
server.use(connect.static(__dirname));
server.use(require('browserify')({
    require: ['bison', __dirname + '/lib/serializer', __dirname + '/lib/config'],
    mount : '/browserify.js',
}));
server.listen(Config.port);

var players = [];
var wss = new WebSocketServer({server: server});
WebSocketServer.prototype.broadcast = function(data, sender) {
  for(var i in this.clients){
    var receiver = this.clients[i];
    if(sender === undefined || sender.sessionId != receiver.sessionId){
      receiver.send(data);
    }
  }
};

wss.on('connection', function(client){
  addPlayer(client);
  sendPing(client);
  initializeRestart();

  client.on('message', function(data){
    var msg = Serializer.deserialize(data);
    // TODO: check if valid before sending data to clients
github avwo / whistle / lib / https / ws / WebSocketServer.js View on Github external
* MIT Licensed
 */

var crypto = require('crypto');
var WebSocket = require('./ws/WebSocket');
var Extensions = require('./ws/Extensions');
var PerMessageDeflate = require('./ws/PerMessageDeflate');
var url = require('url');

/**
 * Handle a HTTP Upgrade request.
 *
 * @api public
 */

WebSocketServer.prototype.handleUpgrade = function(req, socket, upgradeHead, cb) {
  // check for wrong path
  if (this.options.path) {
    var u = url.parse(req.url);
    if (u && u.pathname !== this.options.path) return;
  }
  var isHixie = req.headers['sec-websocket-key1'];
  if (typeof req.headers.upgrade === 'undefined' || req.headers.upgrade.toLowerCase() !== 'websocket'
    || isHixie) {
    abortConnection(socket, 400, isHixie ? 'Not support hixie-76' : 'Bad Request');
    return;
  }

  handleHybiUpgrade.apply(this, arguments);
};

/**
github avwo / whistle / lib / websocket / WebSocketServer.js View on Github external
* MIT Licensed
 */

var crypto = require('crypto');
var WebSocket = require('ws/lib/WebSocket');
var Extensions = require('ws/lib/Extensions');
var PerMessageDeflate = require('ws/lib/PerMessageDeflate');
var url = require('url');

/**
 * Handle a HTTP Upgrade request.
 *
 * @api public
 */

WebSocketServer.prototype.handleUpgrade = function(req, socket, upgradeHead, cb) {
  // check for wrong path
  if (this.options.path) {
    var u = url.parse(req.url);
    if (u && u.pathname !== this.options.path) return;
  }
  var isHixie = req.headers['sec-websocket-key1'];
  if (typeof req.headers.upgrade === 'undefined' || req.headers.upgrade.toLowerCase() !== 'websocket'
    || isHixie) {
    abortConnection(socket, 400, isHixie ? 'Not support hixie-76' : 'Bad Request');
    return;
  }

  handleHybiUpgrade.apply(this, arguments);
};

/**

ws

Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js

MIT
Latest version published 4 days ago

Package Health Score

94 / 100
Full package analysis