Orizon Rpc
| Summary | A simple library to call rpc's and receive a response callback |
|---|---|
| Description |
// Your data model public struct YourData { public SteamId SteamId { get; set; } public string FirstName { get; set;} } // Create your struct request private record struct GetDataRequest : IRpcRequest { public Guid CallbackId { get; set; } public int DataId { get; set; } } // Create your struct response private record struct GetDataResponse : IRpcResponse { public Guid CallbackId { get; set; } public YourData Data { get; set; } } // Called on the host private static GetDataResponse OnGetDataRequest( GetDataRequest request ) { // Do your work here and return the result var data = ... return new GetDataResponse { Data = data }; } In your custom script, e.g Character.cs // Register your rpc callback here protected override void OnStart() { if ( IsProxy ) return; RpcServer.RegisterHandler<GetDataRequest, GetDataResponse>( OnGetDataRequest ); } // Call this function on the client to get your data public static async Task<YourData> GetDataAsync( int dataId ) { var request = new GetDataRequest { DataId = dataId }; // Your data is store in the result variable var result = await RpcClient.SendRpc<GetDataRequest, GetDataResponse>( request ); return result.Data; }// Your data model
public struct YourData
{
public SteamId SteamId { get; set; }
public string FirstName { get; set;}
}
// Create your struct request
private record struct GetDataRequest : IRpcRequest
{
public Guid CallbackId { get; set; }
public int DataId { get; set; }
}
// Create your struct response
private record struct GetDataResponse : IRpcResponse
{
public Guid CallbackId { get; set; }
public YourData Data { get; set; }
}
// Called on the host
private static GetDataResponse OnGetDataRequest( GetDataRequest request )
{
// Do your work here and return the result
var data = ...
return new GetDataResponse { Data = data };
}
In your custom script, e.g Character.cs
// Register your rpc callback here
protected override void OnStart()
{
if ( IsProxy ) return;
RpcServer.RegisterHandler<GetDataRequest, GetDataResponse>( OnGetDataRequest );
}
// Call this function on the client to get your data
public static async Task<YourData> GetDataAsync( int dataId )
{
var request = new GetDataRequest { DataId = dataId };
// Your data is store in the result variable
var result = await RpcClient.SendRpc<GetDataRequest, GetDataResponse>( request );
return result.Data;
}
|
| Votes | 2 0 2 |
| Error Rate | 0% |
| Reviews |
1 reviews
100% Recommended (1)
0% Promise (0)
0% Needs Work (0)
|
| Data | {} |