def service_client_side_stream(a, b, *args, **kwargs): """ 测试客户端流模式的服务端应用 """ _ret_obj = [a, b, args, kwargs] _json_str = StringTool.object_to_json(_ret_obj) print('call service_client_side_stream return : ' + _json_str) return [a, b, args, kwargs]
def compare_object_by_json(object1, object2, logger=None): """ 比较两个基本对象类型(通过转换为json串) @param {object} object1 - 要比较的对象1 @param {object} object2 - 要比较的对象2 @param {logging.Logger} logger=None - 输出日志对象,不一样的时候输出 @return {bool} - 比较是否通过,如果不通过将输出两个对象 """ _json1 = StringTool.object_to_json(object1) _json2 = StringTool.object_to_json(object2) if _json1 == _json2: return True else: # 输出日志 if logger is None: print('object1: ' + _json1) print('object2: ' + _json2) else: logger.error('object1: %s\nobject2: %s' % (_json1, _json2)) return False
def service_server_side_stream(a, b, *args, **kwargs): """ 测试服务端流模式的服务端应用 """ _ret_obj = [a, b, args, kwargs] _json_str = StringTool.object_to_json(_ret_obj) print('call service_server_side_stream return : ' + _json_str) _i = 0 while True: yield [a, b, 'server+' + str(_i), args, kwargs] _i = _i + 1 if _i > 4: break
def service_bidirectional_stream(a, b, *args, **kwargs): """ 测试双向流模式的服务端应用 """ _ret_obj = [a, b, args, kwargs] _json_str = StringTool.object_to_json(_ret_obj) print('call service_bidirectional_stream get : ' + _json_str) if a == 'one': # 一个请求一个回应的方式,只回复单个内容 yield [a, b, 'one-->', args, kwargs] elif a == 'end': # 收到请求,只要不是最后一个,回应None if b == 'end': yield [a, b, 'end-->', args, kwargs] else: yield None else: # 其他情况,一个回应多个 _i = 0 while True: yield [a, b, 'bidirectional+' + str(_i), args, kwargs] _i = _i + 1 if _i > 4: break