示例#1
0
 /// <summary>
 ///  rpc 调用 没有经过测试 为什么不用async修饰 因为加或者不加都可以
 ///  如果方法中需要await 等待的那么必须用async修饰 否则只需要在调用的那个方法里加
 ///  说明 await 和 async 是成对出现的
 /// </summary>
 /// <param name="messageType"></param>
 /// <param name="msg"></param>
 /// <returns></returns>
 public UniTask <byte[]> Call(int opcode, byte[] msg)
 {
     try
     {
         UniTaskCompletionSource <byte[]> taskCompletion = null;
         int rpcID = IDGenerator.GetRpcId();
         if (!completionCache.TryGetValue(rpcID, out taskCompletion))
         {
             taskCompletion = new UniTaskCompletionSource <byte[]>();
             completionCache.Add(rpcID, taskCompletion);
         }
         socket.Send(opcode, rpcID, msg);
         return(taskCompletion.Task);
     }
     catch (Exception e)
     {
         Debug.LogError(e);
         throw;
     }
 }
示例#2
0
 /// <summary>
 /// 同步发送消息
 /// </summary>
 /// <param name="messageType"></param>
 /// <param name="msg"></param>
 public void SendMessage(int opcode, byte[] msg)
 {
     socket.Send(opcode, IDGenerator.GetRpcId(), msg);
 }