UNPKG

rocket.chat.mqtt

Version:

It's a MQTT Server, using redis to scale horizontally.

30 lines (19 loc) 646 B
import { decoder, encoder } from 'rocket.chat.proto'; import Publish from '../Routes/publish'; const decodeUserpresence = decoder('userpresence'); const encodeUserpresence = encoder('userpresence'); const statusAllowed = [0, 1, 2]; Publish.add('userpresence', ({ user }, packet) => { if (!user || !user._id) { return false; } const { status, ...args } = decodeUserpresence(packet.payload); if (!statusAllowed.includes(status) || Object.keys(args).length) { return false; } packet.qos = 0; packet.retain = true; packet.payload = encodeUserpresence({ status }); packet.topic = `userpresence/${ user._id }`; return true; });