Minor code style fixes
parent
13fde387ec
commit
35e1e41d3a
|
@ -1,3 +1,4 @@
|
||||||
|
*.swp
|
||||||
node_modules/
|
node_modules/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
config.json
|
config.json
|
||||||
|
|
|
@ -4,47 +4,49 @@ SubscriptionManager = require('./subscription').SubscriptionManager
|
||||||
|
|
||||||
clients = {}
|
clients = {}
|
||||||
|
|
||||||
|
|
||||||
class Client
|
class Client
|
||||||
constructor: (@ws) ->
|
constructor: (@ws) ->
|
||||||
@id = uuid.v4()
|
@.id = uuid.v4()
|
||||||
|
|
||||||
@handleEvents()
|
@.handleEvents()
|
||||||
|
|
||||||
handleEvents: () ->
|
handleEvents: () ->
|
||||||
@ws.on 'message', @handleMessage.bind(@)
|
@ws.on 'message', @.handleMessage.bind(@)
|
||||||
|
|
||||||
handleMessage: (message) ->
|
handleMessage: (message) ->
|
||||||
msg = JSON.parse(message)
|
msg = JSON.parse(message)
|
||||||
|
|
||||||
if msg.cmd == 'auth'
|
if msg.cmd == 'auth'
|
||||||
@auth(msg.data)
|
@.auth(msg.data)
|
||||||
else if msg.cmd == 'subscribe'
|
else if msg.cmd == 'subscribe'
|
||||||
@addSubscription(msg.routing_key)
|
@.addSubscription(msg.routing_key)
|
||||||
else if msg.cmd == 'unsubscribe'
|
else if msg.cmd == 'unsubscribe'
|
||||||
@removeSubscription(msg.routing_key)
|
@.removeSubscription(msg.routing_key)
|
||||||
|
|
||||||
auth: (auth) ->
|
auth: (auth) ->
|
||||||
if auth.token and auth.sessionId and signing.verify(auth.token)
|
if auth.token and auth.sessionId and signing.verify(auth.token)
|
||||||
@auth = auth
|
@.auth = auth
|
||||||
|
|
||||||
addSubscription: (routing_key) ->
|
addSubscription: (routing_key) ->
|
||||||
if @auth
|
if @.auth
|
||||||
if !@subscriptionManager
|
if !@.subscriptionManager
|
||||||
@subscriptionManager = new SubscriptionManager(@id, @auth, @ws)
|
@.subscriptionManager = new SubscriptionManager(@.id, @.auth, @ws)
|
||||||
@subscriptionManager.add(routing_key)
|
@.subscriptionManager.add(routing_key)
|
||||||
|
|
||||||
close: () ->
|
close: () ->
|
||||||
if @subscriptionManager
|
if @.subscriptionManager
|
||||||
@subscriptionManager.destroy()
|
@.subscriptionManager.destroy()
|
||||||
|
|
||||||
removeSubscription: (routing_key) ->
|
removeSubscription: (routing_key) ->
|
||||||
if @subscriptionManager
|
if @.subscriptionManager
|
||||||
@subscriptionManager.remove(routing_key)
|
@.subscriptionManager.remove(routing_key)
|
||||||
|
|
||||||
|
|
||||||
exports.createClient = (ws) ->
|
exports.createClient = (ws) ->
|
||||||
client = new Client(ws)
|
client = new Client(ws)
|
||||||
clients[client.id] = client
|
clients[client.id] = client
|
||||||
client.ws.on 'close', (() ->
|
client.ws.on 'close', (() ->
|
||||||
@.close()
|
@.close()
|
||||||
delete clients[@id]
|
delete clients[@.id]
|
||||||
).bind(client)
|
).bind(client)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
queue = require('./rabbit')
|
queue = require('./rabbit')
|
||||||
|
|
||||||
|
|
||||||
class Subscription
|
class Subscription
|
||||||
constructor: (@client_id, @auth, @ws, @routing_key) ->
|
constructor: (@client_id, @auth, @ws, @routing_key) ->
|
||||||
|
|
||||||
|
@ -16,31 +17,32 @@ class Subscription
|
||||||
@ws.send clientMsgStr
|
@ws.send clientMsgStr
|
||||||
|
|
||||||
start: () ->
|
start: () ->
|
||||||
queue.subscribe(@client_id, @routing_key, @handleMessage.bind(@))
|
queue.subscribe(@client_id, @routing_key, @.handleMessage.bind(@))
|
||||||
|
|
||||||
stop: () ->
|
stop: () ->
|
||||||
queue.unsubscribe(@client_id, @routing_key)
|
queue.unsubscribe(@client_id, @routing_key)
|
||||||
|
|
||||||
|
|
||||||
class SubscriptionManager
|
class SubscriptionManager
|
||||||
constructor: (@client_id, @auth, @ws) ->
|
constructor: (@client_id, @auth, @ws) ->
|
||||||
@subscriptions = {}
|
@.subscriptions = {}
|
||||||
|
|
||||||
add: (routing_key) ->
|
add: (routing_key) ->
|
||||||
if !@subscriptions[routing_key]
|
if !@.subscriptions[routing_key]
|
||||||
@subscriptions[routing_key] = {}
|
@.subscriptions[routing_key] = {}
|
||||||
else
|
else
|
||||||
@subscriptions[routing_key].stop()
|
@.subscriptions[routing_key].stop()
|
||||||
|
|
||||||
@subscriptions[routing_key] = new Subscription(@client_id, @auth, @ws, routing_key)
|
@.subscriptions[routing_key] = new Subscription(@client_id, @auth, @ws, routing_key)
|
||||||
@subscriptions[routing_key].start()
|
@.subscriptions[routing_key].start()
|
||||||
|
|
||||||
remove: (routing_key) ->
|
remove: (routing_key) ->
|
||||||
@subscriptions[routing_key].stop()
|
@.subscriptions[routing_key].stop()
|
||||||
|
|
||||||
delete @subscriptions[routing_key]
|
delete @.subscriptions[routing_key]
|
||||||
|
|
||||||
destroy: () ->
|
destroy: () ->
|
||||||
@subscriptions = {}
|
@.subscriptions = {}
|
||||||
queue.destroy(@client_id)
|
queue.destroy(@client_id)
|
||||||
|
|
||||||
exports.SubscriptionManager = SubscriptionManager
|
exports.SubscriptionManager = SubscriptionManager
|
||||||
|
|
Loading…
Reference in New Issue