# Send a stream connection request, containing the clients identifier request = KRPC.ConnectionRequest() request.type = KRPC.ConnectionRequest.STREAM request.client_identifier = response.client_identifier send_message(stream_conn, request) # Receive the connection response response = recv_message(stream_conn, KRPC.ConnectionResponse) # Check the connection was successful if response.status != KRPC.ConnectionResponse.OK: raise RuntimeError("Connection failed: " + response.message) print('Connected to stream server') # Build a KRPC.GetStatus call to be streamed stream_call = KRPC.ProcedureCall() stream_call.service = 'KRPC' stream_call.procedure = 'GetStatus' # Call KRPC.AddStream to add the stream call = KRPC.ProcedureCall() call.service = 'KRPC' call.procedure = 'AddStream' arg = KRPC.Argument() arg.position = 0 arg.value = stream_call.SerializeToString() call.arguments.extend([arg]) request = KRPC.Request() request.calls.extend([call]) send_message(rpc_conn, request)
# Send an RPC connection request request = KRPC.ConnectionRequest() request.type = KRPC.ConnectionRequest.RPC request.client_name = 'Jeb' send_message(rpc_conn, request) # Receive the connection response response = recv_message(rpc_conn, KRPC.ConnectionResponse) # Check the connection was successful if response.status != KRPC.ConnectionResponse.OK: raise RuntimeError('Connection failed: ' + response.message) print('Connected to RPC server') # Invoke the KRPC.GetStatus RPC call = KRPC.ProcedureCall() call.service = 'KRPC' call.procedure = 'GetStatus' request = KRPC.Request() request.calls.extend([call]) send_message(rpc_conn, request) # Receive the response response = recv_message(rpc_conn, KRPC.Response) # Check for an error in the response if response.HasField('error'): raise RuntimeError('ERROR: ' + str(response.error)) # Check for an error in the results assert(len(response.results) == 1)