def process(self, client, msg): '''Process the message from the local user's front end. Args: client (PeetsServerProtocol) : local user. msg (RTCMessage) : the message from frontend. ''' rtcMsg = RTCMessage.from_string(msg) handler = self.handlers.get(rtcMsg.eventName) if handler is not None: handler(client, rtcMsg.data) else: PeetsServerFactory.__logger.error("Unknown event name: " + rtcMsg.eventName)
def sdp_callback(self, interest, data): '''A callback function for incoming sdp description from remote users. Args: interest : PyCCN.UpcallInfo.Interest data : PyCCN.UpcallInfo.ContentObject Send the sdp to the frontend. If we already received the ICE candidate for the same remote user, then we also send out this ICE candidate. ''' content = data.content offer_msg = RTCMessage.from_string(content) d = RTCData(socketId = self.client.id, sdp = offer_msg.data.sdp) # this is the answer to the local user answer_msg = RTCMessage('receive_answer', offer_msg.data) self.client.sendMessage(str(answer_msg)) remote_user = self.roster[offer_msg.data.socketId] remote_user.set_sdp_sent() # we received ice candidate before sending answer if remote_user.ice_candidate_msg is not None: self.client.sendMessage(str(remote_user.ice_candidate_msg))