websocket.on('open', function open() { var spark = new Spark( req.headers // HTTP request headers. , req // IP address location. , parse(req.url).query // Optional query string. , null // We don't have an unique id. , req // Reference to the HTTP req. ); spark.on('outgoing::end', function end() { if (websocket) websocket.close(); }).on('outgoing::data', function write(data) { if ('string' === typeof data) return websocket.send(data); websocket.send(data, { binary: true }); }); websocket.on('error', spark.emits('error')); websocket.on('message', spark.emits('data', function parse(evt) { return evt.data; })); websocket.on('close', spark.emits('end', function close() { websocket.removeAllListeners(); websocket = null; })); });
.on("upgrade", function (request, socket, body) { if (!WebSocket.isWebSocket(request)) { return; } var ws = new WebSocket(request, socket, body); ws.on("message", router); ws.on("close", function(event) { ws = null; }); })
server.on("upgrade", function(request, socket, body){ if (WebSocket.isWebSocket(request)){ var ws = new WebSocket(request, socket, body); var p = new player(sender,"websocket"); p.wssocket = ws; p.connected(); ws.on("message", function(event){ p.recive(event.data); }); ws.on("close", function(event){ p.disconnected(); }); } });
this.on('upgrade', function upgrade(req, socket, head) { if (!Faye.isWebSocket(req)) return socket.destroy(); var websocket = new Faye(req, socket, head, null, options); // // The WebSocket handshake is complete only when the `open` event is fired. // websocket.on('open', function open() { var spark = new Spark( req.headers // HTTP request headers. , req // IP address location. , parse(req.url).query // Optional query string. , null // We don't have an unique id. , req // Reference to the HTTP req. ); spark.on('outgoing::end', function end() { if (websocket) websocket.close(); }).on('outgoing::data', function write(data) { if ('string' === typeof data) return websocket.send(data); websocket.send(data, { binary: true }); }); websocket.on('error', spark.emits('error')); websocket.on('message', spark.emits('data', function parse(evt) { return evt.data; })); websocket.on('close', spark.emits('end', function close() { websocket.removeAllListeners(); websocket = null; })); }); });
function startWebSockets() { var wss = new WebSocketServer(request, socket, body); wss.id = crypto.randomBytes(16).toString('hex'); wss.on('open', function () { var rejected = false; var rejectReason; function reject(reason) { rejected = true; if (reason) rejectReason = reason; } store.emit('client', wss, reject); if (rejected) { // Tell the client to stop trying to connect wss.close(1001, rejectReason); return; } var stream = createWebSocketStream(wss, store.logger); var agent = store.shareClient.listen(stream, wss.upgradeReq); if (request.session) agent.connectSession = request.session; store.emit('share agent', agent, stream); }); }
server.on('upgrade', function(request, socket, body) { var ws; if (WebSocket.isWebSocket(request)) { ws = new WebSocket(request, socket, body); onSourceCodeChange.subscribe(notify); ws.on('message', onMessage); ws.on('close', function(event) { ws = null; onSourceCodeChange.unsubscribe(notify); }); } function notify () { ws.send(restartNotification); } });
this.server.on('upgrade', (req, socket, body) => { if(!WebSocket.isWebSocket(req)) return; console.log('接收到来自客户端的WebSocket连接'); if(typeof this.ws === 'string') { // 走代理的方式 wrapRouter.dealWithWs(req, socket, body, this.ws, this.https); } else if(typeof this.ws === 'object') { let ws = new WebSocket(req, socket, body); ws.on('open', () => {this.ws.open&&this.ws.open.call(null, ws)}); ws.on('message', (evt) => {this.ws.message&&this.ws.message.call(null, evt.data)}); ws.on('close', (evt) => { this.ws.close&&this.ws.close.call(null, evt); ws = null; }); } });
server.on('upgrade', function(request, socket, body) { if (WebSocket.isWebSocket(request)) { var ws = new WebSocket(request, socket, body); // console.log(ws); logger.info("Open new connection: version=%s, url=%s, readyState=%d", ws.version, ws.url, ws.readyState); ws.on('message', function(event) { logger.info("Received: %s", event.data); var obj = { library : "faye-websocket", time : new Date(), text : event.data }; ws.send(JSON.stringify(obj)); }); ws.on('close', function(event) { logger.info("Close connection: code=%s, reason=%s", event.code, event.reason); ws = null; }); } });
var onupgrade = function (req, socket, body) { if (webSocket.isWebSocket(req)) { var ws = new webSocket(req, socket, body, null, {ping: 10}); req.path = exports.getNormalizedPath(req.url.split('?')[0]); ws.req = fillReq(req, ws); if (!req) { return; } ws.onopen = function (ev) { if (serverEvents.open) { serverEvents.open(helpers.ConnectionType.WebSocket, ev.currentTarget, ev.currentTarget.req, ev); } }; ws.on('message', function (ev) { if (serverEvents.message) { serverEvents.message(helpers.ConnectionType.WebSocket, ev.currentTarget, ev.currentTarget.req, ev); } }); ws.on('error', function (ev) { if (serverEvents.error) { serverEvents.error(helpers.ConnectionType.WebSocket, ev.currentTarget, ev.currentTarget.req, ev); } }); ws.on('close', function (ev) { if (serverEvents.close) { serverEvents.close(helpers.ConnectionType.WebSocket, ev.currentTarget, ev.currentTarget.req, ev); } ws = null; }); } }
server.on('upgrade', function(request, socket, body) { if (WebSocket.isWebSocket(request)) { var ws = new WebSocket(request, socket, body), room, thisroom, sid = + new Date() + Math.floor((Math.random() * 10) * 1000); ws.sid = sid; ws.status_hasVideo = false; room = rooms(ws, 'audioTest'); thisroom = roomList['audioTest']; userList[sid] = ws; console.log('new one in'); ws.on('message', function(e) { var data = e.data; room.sendexceptme(data); }); ws.on('close', function(e) { room.sendexceptme(tostring({actname: 'leave', actval: sid})); room.remove(sid); delete userList[sid]; console.log('close', e.code, e.reason); ws = null; }); } });
server.on('upgrade', function(request, socket, body) { var ws; var ind; if (WebSocket.isWebSocket(request)) { ws = new WebSocket(request, socket, body); ind = sockets.push(ws) - 1; onSourceCodeChange.subscribe(notify); ws.send(JSON.stringify({ start: true, url: customFrameURL || '/run' })); ws.on('message', onMessage); ws.on('close', function(event) { ws = null; sockets[ind] = undefined; onSourceCodeChange.unsubscribe(notify); }); } function notify () { ws.send(restartNotification); } });
server.on('upgrade', function (request, socket, body) { if (WebSocket.isWebSocket(request)) { var ws = new WebSocket(request, socket, body); var session_id = "" + new Date().getTime(); subscriptions[session_id] = {}; function sendMessage(data) { ws.send(EJSON.stringify(data)); } ws.on('message', function(event) { var data = JSON.parse(event.data); switch (data.msg) { case "connect": sendMessage({ msg: "connected", session: session_id }); break; case "method": if (data.method in methods) { Promise.resolve(methods[data.method].apply(this, data.params)) .then(function(result){ sendMessage({ msg: "result", id: data.id, result: result }); sendMessage({ msg: "updated", id: data.id }) }) .catch(function(e){ console.log('ddp server error', e.message); sendMessage({ id: data.id, error: { error: 500, reason: e.message, errorType: "Meteor.Error" } }); }); } else { console.log("Error method " + data.method + " not found"); sendMessage({ id: data.id, error: { error: 404, reason: "Method not found", errorType: "Meteor.Error" } }); } break; case "sub": subscriptions[session_id][data.name] = { added: function(id, doc) { sendMessage({ msg: "added", collection: data.name, id: id, fields: doc }) }, changed: function(id, fields, cleared) { sendMessage({ msg: "changed", collection: data.name, id: id, fields: fields, cleared: cleared }) }, removed: function(id) { sendMessage({ msg: "removed", collection: data.name, id: id }) } }; var docs = collections[data.name]; for (var id in docs) subscriptions[session_id][data.name].added(id, docs[id]); sendMessage({ msg: "ready", subs: [data.id] }); break; case "ping": sendMessage({ msg: "pong", id: data.id }); break; default: } }); ws.on('close', function(event) { delete subscriptions[session_id]; ws = null; session_id = null; }); } });
server.on('upgrade', function(request, socket, body) { function sendMessage(data) { ws.send(JSON.stringify(data)); } if (WebSocket.isWebSocket(request)) { var ws = new WebSocket(request, socket, body); var session_id = new Date().getTime(); ws.on('message', function(event) { var data = JSON.parse(event.data); switch (data.msg) { case "connect": { sendMessage({ server_id: 0 }); sendMessage({ msg: "connected", session_id: session_id }); break; } case "method": { if (data.method in methods) { try { var result = methods[data.method].apply(this, data.params); sendMessage({ result: result, id: data.id, msg: "result" }); } catch (e) { sendMessage({ id: data.id, error: { error: 500, reason: "Internal Server Error", errorType: "Meteor.Error" } }); } } else { console.log("Error method " + data.method + " not found"); sendMessage({ id: data.id, error: { error: 404, reason: "Method not found", errorType: "Meteor.Error" } }); } break; } default: { } } }); ws.on('close', function(event) { console.log('close', event.code, event.reason); ws = null; session_id = null; }); } });