def _notice_others_self_quit(self): # 广播用户离线事件(逐个房间通知离开事件) leave_noticer = ConchLeaveRoomEventNoticer(HornerPacketHandler.COMMUNICATION_EVENT, HornerPacketHandler.EVT_TALK_LEAVEROOM) leave_noticer.setSessId(self.sess_id) leave_noticer.changeSuccess() if self.role == LiveRequest.ROLE_VISITOR: leave_noticer.setIsVisitor() room_id_list = Chatroom.allPaticipatedRoom(self.company_id, self.sess_id) for r_id in room_id_list: chat_room = Chatroom(self.company_id, r_id) if chat_room.isLoadSuccess(): chat_room.broadcast(self.live_request_list, leave_noticer.toString(), [self.sess_id])
def _notice_room_joined(self, room_id, client_information): ''' 通知新人加入房间 :param recver: :param room_id: :param client_information: :return: ''' noticer_room_joined = ConchJoinRoomEventNoticer(HornerPacketHandler.COMMUNICATION_EVENT, HornerPacketHandler.EVT_TALK_JOINROOM) noticer_room_joined.setSessId(self.sess_id) noticer_room_joined.setRoomId(room_id) noticer_room_joined.client_infor = client_information noticer_room_joined.changeSuccess() chatroom = Chatroom(self.company_id, room_id) if chatroom.isLoadSuccess(): chatroom.broadcast(self.live_request_list, noticer_room_joined.toString())
def run(self): chat_room_id = self._package.get('remoter', '') company_id = self._package.get('cid', '') cur_uuid = self._package.get('sessid', '') chat_room = Chatroom(company_id, chat_room_id) # 构造文本消息对象 msg_noticer = ConchMessageNoticer(HornerPacketHandler.COMMUNICATION_MESSAGE, self._package.get('cmd')) msg_noticer.setContent(self._package.get('content')) msg_noticer.setSessId(self._package.get('sessid')) msg_noticer.setRoomId(self._package.get('remoter')) msg_noticer.changeSuccess() if chat_room.isLoadSuccess(): chat_room.broadcast(self.live_request_list, msg_noticer.toString(), [cur_uuid]) response_noticer = ConchResponseNoticer(HornerPacketHandler.COMMUNICATION_RESPONSE, ConchResponseNoticer.ERR_NONE) response_noticer.changeSuccess() return response_noticer else: return ConchResponseNoticer(HornerPacketHandler.COMMUNICATION_RESPONSE, ConchResponseNoticer.ERR_CHATROOM_NOEXIST)