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)
def run(self): horner_gear = HornerGear() if self.sameUUID(self.sess_id): # 客户端UUID冲突 err_noticer = ConchResponseNoticer(HornerPacketHandler.COMMUNICATION_RESPONSE, ConchResponseNoticer.ERR_CONFLICTION_UUID) err_noticer.setErrorID(ConchResponseNoticer.ERR_CONFLICTION_UUID) return err_noticer else: _noticer = ConchBeginEventNoticer(HornerPacketHandler.COMMUNICATION_EVENT, HornerPacketHandler.EVT_CMD_CONNECTION) _noticer.setSessId(self.live_request.getUUID()) if self.live_request.isCustomService(): # 当前用户会话是客服人员 horner_gear.addLiveSessionToCompany(self.company_id, self.live_request.getUUID()) _noticer.changeSuccess() else: # 客户进入对话,选择客服并创建聊天室 _noticer.setIsVisitor() group_id = self._package.get('gid') if group_id is None: group_id = 'default' custom_service_id = horner_gear.choiceCustomServicer(self.company_id, self._package.get('gid')) if (custom_service_id is not None): custom_service_id = ensureString(custom_service_id) c_room_id = Chatroom.createChatRoom(self.company_id, custom_service_id) if c_room_id is not None: room = Chatroom(self.company_id, c_room_id) if room.isLoadSuccess(): room.addRequestUuid(self.live_request.getUUID()) horner_gear.addLiveSessionToCompany(self.company_id, self.live_request.getUUID()) _noticer.setRoomId(c_room_id) # 通知客服有新对话房间建立 self._notice_room_created(custom_service_id, c_room_id, self.client_infor) # 房间广播新人加入事件 self._notice_room_joined(c_room_id, self.client_infor) _noticer.changeSuccess() else: _noticer.setMessage('没有客服人员在线,前端改留言板服务!') return _noticer