Fixed issue with too many room switch messages

This commit is contained in:
Uriziel 2014-04-21 21:32:44 +02:00
parent 3ae25ba072
commit fd14fd1755

View File

@ -59,11 +59,18 @@ class SyncFactory(Factory):
def addWatcher(self, watcherProtocol, username, roomName, roomPassword):
username = self._roomManager.findFreeUsername(username)
watcher = Watcher(self, watcherProtocol, username)
self.setWatcherRoom(watcher, roomName)
self.setWatcherRoom(watcher, roomName, asJoin=True)
def setWatcherRoom(self, watcher, roomName):
def setWatcherRoom(self, watcher, roomName, asJoin=False):
self._roomManager.moveWatcher(watcher, roomName)
self.sendJoinMessage(watcher)
if asJoin:
self.sendJoinMessage(watcher)
else:
self.sendRoomSwitchMessage(watcher)
def sendRoomSwitchMessage(self, watcher):
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, None)
self._roomManager.broadcast(watcher, l)
def removeWatcher(self, watcher):
self.sendLeftMessage(watcher)
@ -117,8 +124,6 @@ class RoomManager(object):
self.removeWatcher(watcher)
room = self._getRoom(roomName)
room.addWatcher(watcher)
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, None)
self.broadcast(watcher, l)
def removeWatcher(self, watcher):
oldRoom = watcher.getRoom()