overleaf/services/web/app/coffee/Features/Editor/EditorRealTimeController.coffee

24 lines
699 B
CoffeeScript
Raw Normal View History

2014-09-26 12:04:33 -04:00
Settings = require 'settings-sharelatex'
RedisWrapper = require("../../infrastructure/RedisWrapper")
rclient = RedisWrapper.client("realtime")
os = require "os"
crypto = require "crypto"
HOST = os.hostname()
RND = crypto.randomBytes(4).toString('hex') # generate a random key for this process
COUNT = 0
2014-02-12 05:23:40 -05:00
module.exports = EditorRealTimeController =
emitToRoom: (room_id, message, payload...) ->
# create a unique message id using a counter
message_id = "web:#{HOST}:#{RND}-#{COUNT++}"
rclient.publish "editor-events", JSON.stringify
2014-02-12 05:23:40 -05:00
room_id: room_id
message: message
payload: payload
_id: message_id
2014-02-12 05:23:40 -05:00
emitToAll: (message, payload...) ->
@emitToRoom "all", message, payload...