Example #1
0
 def on_message(self, data):
     print 'messaged'
     data = json.loads(data)
     if not self.user:
         # make name
         self.user = make_random_user()
         self.room.join(self.user)
         self.subscription = RedisListener(self.room, self)
         self.subscription.start()
         self.log_and_publish(
             construct_message('JOIN', 'Welcome!', self.user))
         print self.room.host
     else:
         if data.get('type') == 'SET_SOURCE' and \
            self.user.email != self.room.host:
             print 'User tried to set source', self.user.email, self.room.host
             return
         self.log_and_publish(
             construct_message(data.get('type'), data.get('message'),
                               self.user))
Example #2
0
class room_socket(WebSocketHandler):
    def open(self, room_id):
        print('room_id: %s' % room_id)
        self.room = Room(room_id)
        self.user = None
        self.subscription = None

    def on_message(self, data):
        print 'messaged'
        data = json.loads(data)
        if not self.user:
            # make name
            self.user = make_random_user()
            self.room.join(self.user)
            self.subscription = RedisListener(self.room, self)
            self.subscription.start()
            self.log_and_publish(
                construct_message('JOIN', 'Welcome!', self.user))
            print self.room.host
        else:
            if data.get('type') == 'SET_SOURCE' and \
               self.user.email != self.room.host:
                print 'User tried to set source', self.user.email, self.room.host
                return
            self.log_and_publish(
                construct_message(data.get('type'), data.get('message'),
                                  self.user))

    def on_close(self):
        print("socket closed")
        if self.subscription:
            self.subscription.stop()
            self.log_and_publish(
                construct_message('LEAVE', 'Goodbye.', self.user))
        self.room.leave(self.user)

    def log_and_publish(self, message):
        print(message.get('log'))
        conn.rpush("room:%s:logs" % self.room.id, message.get('log'))
        conn.publish("room:%s" % self.room.id, message.get('display'))
Example #3
0
class room_socket(WebSocketHandler):
    def open(self, room_id):
        print('room_id: %s' % room_id)
        self.room = Room(room_id)
        self.user = None
        self.subscription = None

    def on_message(self, data):
        print 'messaged'
        data = json.loads(data)
        if not self.user:
            # make name
            self.user = make_random_user()
            self.room.join(self.user)
            self.subscription = RedisListener(self.room, self)
            self.subscription.start()
            self.log_and_publish(construct_message('JOIN', 'Welcome!', self.user))
            print self.room.host
        else:
            if data.get('type') == 'SET_SOURCE' and \
               self.user.email != self.room.host:
                print 'User tried to set source', self.user.email, self.room.host
                return
            self.log_and_publish(construct_message(data.get('type'), data.get('message'), self.user))

    def on_close(self):
        print("socket closed")
        if self.subscription:
            self.subscription.stop()
            self.log_and_publish(construct_message('LEAVE', 'Goodbye.', self.user))
        self.room.leave(self.user)

    def log_and_publish(self, message):
        print(message.get('log'))
        conn.rpush("room:%s:logs" % self.room.id, message.get('log'))
        conn.publish("room:%s" % self.room.id, message.get('display'))
Example #4
0
 def on_message(self, data):
     print 'messaged'
     data = json.loads(data)
     if not self.user:
         # make name
         self.user = make_random_user()
         self.room.join(self.user)
         self.subscription = RedisListener(self.room, self)
         self.subscription.start()
         self.log_and_publish(construct_message('JOIN', 'Welcome!', self.user))
         print self.room.host
     else:
         if data.get('type') == 'SET_SOURCE' and \
            self.user.email != self.room.host:
             print 'User tried to set source', self.user.email, self.room.host
             return
         self.log_and_publish(construct_message(data.get('type'), data.get('message'), self.user))