Fixed issue with too many room switch messages
This commit is contained in:
parent
3ae25ba072
commit
fd14fd1755
@ -59,11 +59,18 @@ class SyncFactory(Factory):
|
|||||||
def addWatcher(self, watcherProtocol, username, roomName, roomPassword):
|
def addWatcher(self, watcherProtocol, username, roomName, roomPassword):
|
||||||
username = self._roomManager.findFreeUsername(username)
|
username = self._roomManager.findFreeUsername(username)
|
||||||
watcher = Watcher(self, watcherProtocol, 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._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):
|
def removeWatcher(self, watcher):
|
||||||
self.sendLeftMessage(watcher)
|
self.sendLeftMessage(watcher)
|
||||||
@ -117,8 +124,6 @@ class RoomManager(object):
|
|||||||
self.removeWatcher(watcher)
|
self.removeWatcher(watcher)
|
||||||
room = self._getRoom(roomName)
|
room = self._getRoom(roomName)
|
||||||
room.addWatcher(watcher)
|
room.addWatcher(watcher)
|
||||||
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, None)
|
|
||||||
self.broadcast(watcher, l)
|
|
||||||
|
|
||||||
def removeWatcher(self, watcher):
|
def removeWatcher(self, watcher):
|
||||||
oldRoom = watcher.getRoom()
|
oldRoom = watcher.getRoom()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user