Example #1
0
 /// <summary>
 /// FastWebSocket的客户端对象
 /// </summary>
 /// <param name="packetIdProvider"></param>
 /// <param name="taskSetActionTable"></param>
 /// <param name="jsonSerializer"></param>
 /// <param name="filterAttributeProvider"></param>
 internal FastWebSocketSession(PacketIdProvider packetIdProvider, TaskSetActionTable taskSetActionTable, IJsonSerializer jsonSerializer, IFilterAttributeProvider filterAttributeProvider)
 {
     this.packetIdProvider        = packetIdProvider;
     this.taskSetActionTable      = taskSetActionTable;
     this.JsonSerializer          = jsonSerializer;
     this.FilterAttributeProvider = filterAttributeProvider;
 }
Example #2
0
        /// <summary>
        /// 快速构建WebSocket服务端
        /// </summary>
        public FastWebSocketServer()
        {
            this.apiActionList      = new ApiActionList();
            this.packetIdProvider   = new PacketIdProvider();
            this.taskSetActionTable = new TaskSetActionTable();

            this.JsonSerializer          = new DefaultJsonSerializer();
            this.FilterAttributeProvider = new FilterAttributeProvider();
        }
 /// <summary>
 /// 设置Api行为返回的任务结果
 /// </summary>
 /// <param name="requestContext">上下文</param>
 /// <param name="taskSetActionTable">任务行为表</param>
 public static void SetApiActionTaskResult(RequestContext requestContext, TaskSetActionTable taskSetActionTable)
 {
     var taskSetAction = taskSetActionTable.Take(requestContext.Packet.id);
     if (taskSetAction != null)
     {
         var returnValue = requestContext.Packet.body;
         taskSetAction.SetAction(SetTypes.SetReturnReult, returnValue);
     }
 }
        /// <summary>
        /// 设置Api行为返回的任务结果
        /// </summary>
        /// <param name="requestContext">上下文</param>
        /// <param name="taskSetActionTable">任务行为表</param>
        public static void SetApiActionTaskResult(RequestContext requestContext, TaskSetActionTable taskSetActionTable)
        {
            var taskSetAction = taskSetActionTable.Take(requestContext.Packet.id);

            if (taskSetAction != null)
            {
                var returnValue = (object)requestContext.Packet.body;
                taskSetAction.SetAction(SetTypes.SetReturnReult, returnValue);
            }
        }
        /// <summary>
        /// 设置Api行为返回的任务异常
        /// 设置失败则返远程异常对象
        /// </summary>
        /// <param name="taskSetActionTable">任务行为表</param>
        /// <param name="requestContext">请求上下文</param>
        /// <returns></returns>
        public static RemoteException SetApiActionTaskException(TaskSetActionTable taskSetActionTable, RequestContext requestContext)
        {
            string message       = JObject.TryCast <string>(requestContext.Packet.body);
            var    taskSetAction = taskSetActionTable.Take(requestContext.Packet.id);

            if (taskSetAction != null)
            {
                taskSetAction.SetAction(SetTypes.SetReturnException, message);
                return(null);
            }
            return(new RemoteException(message));
        }
        /// <summary>
        /// 设置Api行为返回的任务异常 
        /// 设置失败则返远程异常对象
        /// </summary>   
        /// <param name="taskSetActionTable">任务行为表</param>
        /// <param name="requestContext">请求上下文</param>     
        /// <returns></returns>
        public static RemoteException SetApiActionTaskException(TaskSetActionTable taskSetActionTable, RequestContext requestContext)
        {
            string message = JObject.TryCast<string>(requestContext.Packet.body);
            var taskSetAction = taskSetActionTable.Take(requestContext.Packet.id);

            if (taskSetAction != null)
            {
                taskSetAction.SetAction(SetTypes.SetReturnException, message);
                return null;
            }
            return new RemoteException(message);
        }
Example #7
0
        /// <summary>
        /// 释放资源
        /// </summary>
        /// <param name="disposing">是否也释放托管资源</param>
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
            if (disposing)
            {
                this.apiActionList = null;

                this.taskSetActionTable.Clear();
                this.taskSetActionTable = null;

                this.packetIdProvider        = null;
                this.JsonSerializer          = null;
                this.FilterAttributeProvider = null;
            }
        }