public override async Task <bool> OnPush(IDataProtocol ps) { var more = ps as DefaultDataProtocol; switch ((EOps)more.Ops) { case EOps.Push: { var proto = PiSerializer.Deserialize <PushProto>(more.Data); // ¹ã²¥Àý×Ó return(await BroadcastAsync(new DefaultDataProtocol { Ops = (short)EOps.Push, Data = PiSerializer.Serialize(new PushProto { Message = ID + " : " + proto.Message }) })); } default: return(RpcResult.Failure); } }
private async void Broadcast() { await Object.Push(new DefaultDataProtocol { Ops = (short)EOps.Push, Data = PiSerializer.Serialize(new PushProto { Message = "Hello socket4net!" }) }); }
private async void Request() { await Object.RequestAsync(new DefaultDataProtocol { Ops = (short)EOps.Reqeust, Data = PiSerializer.Serialize(new RequestProto() { Message = "I'm a request!" }) }); }
public override async Task <bool> OnPush(IDataProtocol ps) { var more = ps as DefaultDataProtocol; switch ((EOps)more.Ops) { case EOps.Push: { var proto = PiSerializer.Deserialize <PushProto>(more.Data); return(true); } default: return(false); } }
public override async Task <RpcResult> OnRequest(IDataProtocol rq) { var more = rq as DefaultDataProtocol; switch ((EOps)more.Ops) { case EOps.Reqeust: { var proto = PiSerializer.Deserialize <RequestProto>(more.Data); return(RpcResult.MakeSuccess(new ResponseProto { Message = $"Response from server : {proto.Message}" })); } default: return(RpcResult.Failure); } }
/// <summary> /// /// </summary> /// <param name="proto"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static RpcResult MakeFailure <T>(T proto) { return(new RpcResult(false, PiSerializer.Serialize(proto))); }
/// <summary> /// /// </summary> /// <param name="proto"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static RpcResult MakeSuccess <T>(T proto) { return(new RpcResult(true, PiSerializer.Serialize(proto))); }