Exemple #1
0
    def send(self, data, context=None):
        """
		发送数据
		:param data: 数据(Java层LogicMessage)
		:param context: 回调上下文
		"""
        log('send data', data)
        data_pack = msgpack.packb(data)
        print_bytes('data_pack', data_pack)
        # AES初始化后,则使用AES加密
        if self._aes_util:
            data_pack = self._aes_util.encrypt(data_pack)
            print_bytes('aes_data_pack', data_pack)
        else:
            data_pack = self._rsa_util.encrypt(data_pack)
            print_bytes('rsa_data_pack', data_pack)
        message = b2a_base64(data_pack)
        print_bytes('send message', message)
        self._socket.sendall(message)

        # 如果有回调上下文,并且设置了回调函数名,则等待回调
        if context and data.get('c'):
            receive_data = self.receive()
            method_name = receive_data.get('i')
            param_pack = receive_data.get('p')
            if param_pack:
                param = msgpack.unpackb(param_pack)
            else:
                param = {}
            log('param', param)
            getattr(context, method_name)(param)
	def to_ls_login(self, param):
		log('to_ls_login:'******'i': 'login',
			'p': msgpack.packb(param),
			'c': 'from_ls_login'
		}
		self._socket_service.send(data, self)
	def to_ls_shake_hand(self, param):
		log('to_ls_shake_hand:', param)
		data = {
			'i': 'shakeHand',
			'p': msgpack.packb(param),
			'c': 'from_ls_shake_hand'
		}
		self._socket_service.send(data, self)
Exemple #4
0
    def receive(self):
        """
		接收数据
		:return: 数据
		"""
        message = self._socket.recv(self._buff_size)
        print_bytes('receive message', message)
        data_pack = a2b_base64(message)
        # AES初始化后,则使用AES解密
        if self._aes_util:
            print_bytes('aes_data_pack', data_pack)
            data_pack = self._aes_util.decrypt(data_pack)
        else:
            print_bytes('rsa_data_pack', data_pack)
            data_pack = self._rsa_util.decrypt(data_pack)
        print_bytes('data_pack', data_pack)
        data = msgpack.unpackb(data_pack)
        log('receive data', data)
        return data
	def from_ls_login(self, param):
		log('from_ls_login:', param)
	def from_ls_shake_hand(self, param):
		log('from_ls_shake_hand:', param)
		self._socket_service.set_aes_key(param.get('aes_key'))