Beispiel #1
0
        /// <summary>
        /// 调用远程端实现的Api
        /// 并返回结果数据任务
        /// </summary>
        /// <typeparam name="T">返回值类型</typeparam>
        /// <param name="api">数据包Api名</param>
        /// <param name="parameters">参数</param>
        /// <exception cref="SocketException"></exception>
        /// <exception cref="SerializerException"></exception>
        /// <exception cref="ProtocolException"></exception>
        /// <returns>远程数据任务</returns>
        public Task <T> InvokeApi <T>(string api, params object[] parameters)
        {
            var id     = this.Server.PacketIdProvider.NewId();
            var packet = new FastPacket(api, id, false);

            packet.SetBodyParameters(this.Server.Serializer, parameters);
            return(FastTcpCommon.InvokeApi <T>(this, this.Server.TaskSetActionTable, this.Server.Serializer, packet));
        }
 /// <summary>
 /// 调用服务端实现的Api
 /// 并返回结果数据任务
 /// </summary>
 /// <typeparam name="T">返回值类型</typeparam>
 /// <param name="api">Api行为的api</param>
 /// <param name="parameters">参数</param>
 /// <exception cref="SocketException"></exception>
 /// <exception cref="SerializerException"></exception>
 /// <returns>远程数据任务</returns>
 public Task <T> InvokeApi <T>(string api, params object[] parameters)
 {
     return(FastTcpCommon.InvokeApi <T>(this, this.taskSetActionTable, this.Serializer, api, this.packetIdProvider.GetId(), true, parameters));
 }