'use strict'; var constants = require('constants'), https = require('https'), path = require('path'), tls = require('tls'), fs = require('fs'), Url = require('url'), WebSocket = require('ws'); const server = https.createServer({ secureProtocol: 'SSLv23_method', secureOptions: constants.SSL_OP_NO_SSLv3, rejectUnauthorized: false, key: fs.readFileSync(__dirname + '/ssl/key.pem'), cert: fs.readFileSync(__dirname + '/ssl/cert.pem') }); const wss = new WebSocket.Server({ server }); wss.on('connection', function connection(ws, req) { //console.log(Url.parse(req.url, true).query); console.log("Connect"); var params = Url.parse(req.url, true).query; ws.channel = params.channelName; ws.on('message', function message(msg) { wss.clients.forEach(function each(client) { if (client !== ws && client.channel == ws.channel && client.readyState === WebSocket.OPEN) { client.send(msg); } }); }); }); server.listen('9000', 'magicworld.servebeer.com', function listening() { const ws = new WebSocket(`wss://magicworld.servebeer.com:${server.address().port}`, { rejectUnauthorized: true }); ws.on('open', function open() { ws.send(`WebSocket Listen in ${server.address().port}`); }); }); wss.on('connection', function connection(ws) {})