HttpApiController.coffee 753 B

123456789101112131415161718192021
  1. WebsocketLoadBalancer = require "./WebsocketLoadBalancer"
  2. DrainManager = require "./DrainManager"
  3. logger = require "logger-sharelatex"
  4. module.exports = HttpApiController =
  5. sendMessage: (req, res, next) ->
  6. logger.log {message: req.params.message}, "sending message"
  7. if Array.isArray(req.body)
  8. for payload in req.body
  9. WebsocketLoadBalancer.emitToRoom req.params.project_id, req.params.message, payload
  10. else
  11. WebsocketLoadBalancer.emitToRoom req.params.project_id, req.params.message, req.body
  12. res.send 204 # No content
  13. startDrain: (req, res, next) ->
  14. io = req.app.get("io")
  15. rate = req.query.rate or "4"
  16. rate = parseInt(rate, 10)
  17. logger.log {rate}, "setting client drain rate"
  18. DrainManager.startDrain io, rate
  19. res.send 204