RPCHandler

(c) 2013-2014 http://ircanywhere.com

Author: Ricki Hastings

IRCAnywhere server/rpc.js

class RPCHandler.RPCHandler()

Singleton class to handle the inbound and outbound RPC calls on the websocket lines

Returns:void
RPCHandler.init()

Called when the application is ready, sets up an observer on our collections so we can figure out whether we need to propogate them to clients.

Returns:void
RPCHandler.push(uid, command, data)

Pushes the data and command out to any sockets associated to that uid

Arguments:
  • uid (string) – A valid user id converted from an object ID
  • command (string) – The command to send
  • data (string) – The json data to send
Returns:

void

RPCHandler.handleUsersUpdate(doc)

Handles any update changes to the users collection and sends changes to clients

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.handleNetworksAll(doc)

Handles any all changes to the network collection

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.handleTabsAll(doc)

Handles all changes to the tabs collections

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.handleEventsAll(doc)

Handles any changes to the events collection

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.handleCommandsAll(doc)

Handles all operations on the commands collection

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.handleChannelUsersAll(doc)

Handles any changes on the channelUsers collection

Arguments:
  • doc (object) – A valid MongoDB document with an _id
Returns:

void

RPCHandler.onSocketOpen(socket)

Handles a new websocket opening and attaches the RPC events

Arguments:
  • socket (object) – A valid sock.js socket
Returns:

void

RPCHandler.handleAuth(socket, data)

Handles the authentication command sent to us from websocket clients Authenticates us against login tokens in the user record, disconnects if expired or incorrect.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void

RPCHandler.handleConnect(socket)

Handles new websocket clients, this is only done after they have been authenticated and it’s been accepted.

Arguments:
  • socket (object) – A valid sock.js socket
Returns:

void

RPCHandler.handleCommand(socket, data, exec)

Handles the exec command RPC call. Which should be used to execute /commands from the clientside without inserting them into the backlog.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
  • exec (boolean) – Whether to exec the command or backlog it
Returns:

void

RPCHandler.handleReadEvents(socket, data)

Handles the command which marks events as read. It takes a MongoDB query and updates them with that query.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void

RPCHandler.handleSelectTab(socket, data)

Handles the selectTab command which is used to change the currently active tab for that user.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void

RPCHandler.handleUpdateTab(socket, data)

Handles the update tab command, we’re allowed to change client side only settings here hiddenUsers and hiddenEvents only at the moment.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void

RPCHandler.handleInsertTab(socket, data)

Allows users to create new tabs on the fly from the client side. Restricted to channel and query tabs.

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void

RPCHandler.handleGetEvents(socket, data)

Handles queries to the events collection

Arguments:
  • socket (object) – A valid sock.js socket
  • data (object) – A valid data object from sock.js
Returns:

void