47 líneas
1.4 KiB
JavaScript
47 líneas
1.4 KiB
JavaScript
'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) {})
|