//------------------------------------------------------------------------------ // 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 // 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 // CSDN博客:https://blog.csdn.net/qq_40374647 // 哔哩哔哩视频:https://space.bilibili.com/94253567 // Gitee源代码仓库:https://gitee.com/RRQM_Home // Github源代码仓库:https://github.com/RRQM // API首页:https://www.yuque.com/rrqm/touchsocket/index // 交流QQ群:234762506 // 感谢您的下载和使用 //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ using System.Threading.Tasks; using TouchSocket.Core; namespace TouchSocket.Rpc.TouchRpc { /// /// RpcActorExtensions /// public static partial class RpcActorExtensions { #region 尝试发送 /// /// 尝试发送 /// /// /// /// /// /// /// /// public static bool TrySend(this TRpcActor rpcActor, short protocol, byte[] buffer, int offset, int length) where TRpcActor : IRpcActorSender { try { rpcActor.Send(protocol, buffer, offset, length); return true; } catch { return false; } } /// /// 尝试发送 /// /// /// /// /// /// public static bool TrySend(this TRpcActor rpcActor, short protocol, byte[] buffer) where TRpcActor : IRpcActorSender { try { rpcActor.Send(protocol, buffer, 0, buffer.Length); return true; } catch { return false; } } /// /// 尝试发送 /// /// /// /// /// public static bool TrySend(this TRpcActor rpcActor, short protocol) where TRpcActor : IRpcActorSender { try { rpcActor.Send(protocol); return true; } catch { return false; } } /// /// 尝试发送 /// /// /// /// /// /// public static bool TrySend(this TRpcActor rpcActor, short protocol, ByteBlock byteBlock) where TRpcActor : IRpcActorSender { try { rpcActor.Send(protocol, byteBlock); return true; } catch { return false; } } #endregion 尝试发送 #region 尝试异步发送 /// /// 尝试发送 /// /// /// /// /// /// /// /// public static async Task TrySendAsync(this TRpcActor rpcActor, short protocol, byte[] buffer, int offset, int length) where TRpcActor : IRpcActorSender { try { await rpcActor.SendAsync(protocol, buffer, offset, length); return true; } catch { return false; } } /// /// 尝试发送 /// /// /// /// /// /// public static async Task TrySendAsync(this TRpcActor rpcActor, short protocol, byte[] buffer) where TRpcActor : IRpcActorSender { try { await rpcActor.SendAsync(protocol, buffer, 0, buffer.Length); return true; } catch { return false; } } /// /// 尝试发送 /// /// /// /// /// public static async Task TrySendAsync(this TRpcActor rpcActor, short protocol) where TRpcActor : IRpcActorSender { try { await rpcActor.SendAsync(protocol); return true; } catch { return false; } } #endregion 尝试异步发送 #region 发送 /// /// /// /// /// /// /// public static void Send(this TRpcActor rpcActor, short protocol, byte[] buffer) where TRpcActor : IRpcActorSender { rpcActor.Send(protocol, buffer, 0, buffer.Length); } /// /// /// /// /// /// public static void Send(this TRpcActor rpcActor, short protocol) where TRpcActor : IRpcActorSender { rpcActor.Send(protocol, TouchSocketCoreUtility.ZeroBytes, 0, 0); } /// /// /// /// /// /// /// public static void Send(this TRpcActor rpcActor, short protocol, ByteBlock byteBlock) where TRpcActor : IRpcActorSender { rpcActor.Send(protocol, byteBlock.Buffer, 0, byteBlock.Len); } /// /// /// /// /// /// /// /// public static Task SendAsync(this TRpcActor rpcActor, short protocol, byte[] buffer) where TRpcActor : IRpcActorSender { return rpcActor.SendAsync(protocol, buffer, 0, buffer.Length); } /// /// /// /// /// /// /// public static Task SendAsync(this TRpcActor rpcActor, short protocol) where TRpcActor : IRpcActorSender { return rpcActor.SendAsync(protocol, TouchSocketCoreUtility.ZeroBytes, 0, 0); } #endregion 发送 } }