Created
June 30, 2014 15:39
-
-
Save danielstjules/71ade40ce7c145c857a6 to your computer and use it in GitHub Desktop.
Patch to use ws with sockjs-node rather than faye-websocket-node
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From ae279bfe194b1b17a6dc18e0720e61d253414154 Mon Sep 17 00:00:00 2001 | |
From: "Daniel St. Jules" <[email protected]> | |
Date: Thu, 8 May 2014 18:59:20 -0400 | |
Subject: [PATCH] Replace faye-websocket-node with ws | |
--- | |
package.json | 4 ++-- | |
src/trans-websocket.coffee | 15 +++++++-------- | |
2 files changed, 9 insertions(+), 10 deletions(-) | |
diff --git a/package.json b/package.json | |
index 2c6d7e1..2cd028a 100644 | |
--- a/package.json | |
+++ b/package.json | |
@@ -10,8 +10,8 @@ | |
"repository": {"type": "git", | |
"url": "https://github.com/sockjs/sockjs-node.git"}, | |
"dependencies": { | |
- "node-uuid" : "1.3.3", | |
- "faye-websocket" : "0.7.2" | |
+ "node-uuid" : "1.3.3", | |
+ "ws" : "0.4.30" | |
}, | |
"devDependencies": { | |
"coffee-script" : "1.2.x" | |
diff --git a/src/trans-websocket.coffee b/src/trans-websocket.coffee | |
index 37b8d6b..5fc2575 100644 | |
--- a/src/trans-websocket.coffee | |
+++ b/src/trans-websocket.coffee | |
@@ -4,7 +4,8 @@ | |
# For the license see COPYING. | |
# ***** END LICENSE BLOCK ***** | |
-FayeWebsocket = require('faye-websocket') | |
+WebSocketServer = require('ws').Server | |
+webSocketServer = new WebSocketServer({noServer: true}) | |
utils = require('./utils') | |
transport = require('./transport') | |
@@ -28,8 +29,7 @@ exports.app = | |
sockjs_websocket: (req, connection, head) -> | |
@_websocket_check(req, connection, head) | |
- ws = new FayeWebsocket(req, connection, head) | |
- ws.onopen = => | |
+ webSocketServer.handleUpgrade req, connection, head, (ws) => | |
# websockets possess no session_id | |
transport.registerNoSession(req, @, | |
new WebSocketReceiver(ws, connection)) | |
@@ -43,8 +43,7 @@ exports.app = | |
status: 400 | |
message: 'Only supported WebSocket protocol is RFC 6455.' | |
} | |
- ws = new FayeWebsocket(req, connection, head) | |
- ws.onopen = => | |
+ webSocketServer.handleUpgrade req, connection, head, (ws) => | |
new RawWebsocketSessionReceiver(req, connection, @, ws) | |
return true | |
@@ -65,7 +64,7 @@ class WebSocketReceiver extends transport.GenericReceiver | |
@ws.addEventListener('close', @thingy_end_cb) | |
tearDown: -> | |
- @ws.removeEventListener('close', @thingy_end_cb) | |
+ @ws.removeListener('close', @thingy_end_cb) | |
super | |
didMessage: (payload) -> | |
@@ -136,8 +135,8 @@ class RawWebsocketSessionReceiver extends transport.Session | |
didClose: -> | |
if not @ws | |
return | |
- @ws.removeEventListener('message', @_message_cb) | |
- @ws.removeEventListener('close', @_end_cb) | |
+ @ws.removeListener('message', @_message_cb) | |
+ @ws.removeListener('close', @_end_cb) | |
try | |
@ws.close(1000, "Normal closure", false) | |
catch x | |
-- | |
1.8.5.2 (Apple Git-48) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment