2014-09-26 12:04:33 -04:00
|
|
|
Settings = require 'settings-sharelatex'
|
2017-05-04 10:22:54 -04:00
|
|
|
RedisWrapper = require("../../infrastructure/RedisWrapper")
|
|
|
|
rclient = RedisWrapper.client("realtime")
|
2019-03-21 12:02:46 -04:00
|
|
|
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...) ->
|
2019-03-21 12:02:46 -04:00
|
|
|
# create a unique message id using a counter
|
|
|
|
message_id = "web:#{HOST}:#{RND}-#{COUNT++}"
|
2017-05-04 10:22:54 -04:00
|
|
|
rclient.publish "editor-events", JSON.stringify
|
2014-02-12 05:23:40 -05:00
|
|
|
room_id: room_id
|
|
|
|
message: message
|
|
|
|
payload: payload
|
2019-03-21 12:02:46 -04:00
|
|
|
_id: message_id
|
2014-02-12 05:23:40 -05:00
|
|
|
|
|
|
|
emitToAll: (message, payload...) ->
|
|
|
|
@emitToRoom "all", message, payload...
|
|
|
|
|