mirror of
https://github.com/openstf/stf
synced 2025-10-06 03:50:04 +02:00
Make inviting/kicking work.
This commit is contained in:
parent
4ac766c371
commit
3a0d177925
6 changed files with 55 additions and 21 deletions
|
@ -22,7 +22,7 @@ module.exports = function(options) {
|
|||
, app = express()
|
||||
, server = http.createServer(app)
|
||||
, io = socketio.listen(server)
|
||||
, router = new events.EventEmitter()
|
||||
, groupRouter = new events.EventEmitter()
|
||||
|
||||
app.set('view engine', 'jade')
|
||||
app.set('views', pathutil.resource('app/views'))
|
||||
|
@ -69,11 +69,7 @@ module.exports = function(options) {
|
|||
})
|
||||
|
||||
sub.on('message', function(channel, data) {
|
||||
router.emit(
|
||||
channel.toString()
|
||||
, channel
|
||||
, wire.Envelope.decode(data)
|
||||
)
|
||||
groupRouter.emit(channel.toString(), channel, data)
|
||||
})
|
||||
|
||||
app.get('/partials/:name', function(req, res) {
|
||||
|
@ -171,10 +167,10 @@ module.exports = function(options) {
|
|||
|
||||
var messageListener = wirerouter()
|
||||
.on(wire.JoinGroupMessage, function(channel, message) {
|
||||
socket.emit('join', message)
|
||||
socket.emit('group.join', message)
|
||||
})
|
||||
.on(wire.LeaveGroupMessage, function(channel, message) {
|
||||
socket.emit('leave', message)
|
||||
socket.emit('group.leave', message)
|
||||
})
|
||||
.handler()
|
||||
|
||||
|
@ -183,23 +179,23 @@ module.exports = function(options) {
|
|||
// @todo Use socket.io to push global events to all clients instead
|
||||
// of listening on every connection, otherwise we're very likely to
|
||||
// hit EventEmitter's leak complaints (plus it's more work)
|
||||
channels.push(wireutil.global)
|
||||
router.on(wireutil.global, messageListener)
|
||||
groupRouter.on(wireutil.global, messageListener)
|
||||
|
||||
// User's private group
|
||||
channels.push(group)
|
||||
sub.subscribe(group)
|
||||
router.on(group, messageListener)
|
||||
groupRouter.on(group, messageListener)
|
||||
|
||||
// Clean up all listeners and subscriptions
|
||||
socket.on('disconnect', function() {
|
||||
groupRouter.removeListener(wireutil.global, messageListener)
|
||||
channels.forEach(function(channel) {
|
||||
router.removeListener(channel, messageListener)
|
||||
groupRouter.removeListener(channel, messageListener)
|
||||
sub.unsubscribe(channel)
|
||||
})
|
||||
})
|
||||
|
||||
socket.on('invite', function(data) {
|
||||
socket.on('group.invite', function(data) {
|
||||
push.send([wireutil.global, wireutil.makeGroupMessage(
|
||||
group
|
||||
, options.groupTimeout
|
||||
|
@ -207,7 +203,7 @@ module.exports = function(options) {
|
|||
)])
|
||||
})
|
||||
|
||||
socket.on('kick', function(data) {
|
||||
socket.on('group.kick', function(data) {
|
||||
push.send([group, wireutil.makeUngroupMessage(
|
||||
group
|
||||
, data
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue