예제 #1
0
        public static void Main(string[] args)
        {
            var wssv = new WebSocketService(81, false);

            wssv.Start();

            Console.WriteLine("\nPress Enter key to exit...");
            Console.ReadLine();

            wssv.Stop();
        }
예제 #2
0
        public static void Start(WebSocketService websocketService)
        {
            //check if already started
            if (_messagesTask != null)
            {
                return;
            }
            _websocketService = websocketService;
            _src = new CancellationTokenSource();
            var token = _src.Token;

            _messagesTask = new Task(() =>
            {
                var task = DoMessages(token);
                try
                {
                    task.Wait();
                }
                catch (AggregateException ex)
                {
                    ex.Handle((err) =>
                    {
                        return(err is System.OperationCanceledException);
                    });
                }

                lock (_lockObj)
                {
                    _clients.Clear();
                    _messagesTask     = null;
                    _websocketService = null;
                    _src = null;
                }
            }, token, TaskCreationOptions.LongRunning);

            _messagesTask.Start();
        }
예제 #3
0
        public static void Start(WebSocketService websocketService)
        {
            //check if already started
            if (_messagesTask != null)
                return;
            _websocketService = websocketService;
            _src = new CancellationTokenSource();
            var token = _src.Token;

            _messagesTask = new Task(() =>
            {
                var task = DoMessages(token);
                try
                {
                    task.Wait();
                }
                catch(AggregateException ex)
                {
                    ex.Handle((err) =>
                    {
                        return (err is System.OperationCanceledException);
                    });
                }

                lock (_lockObj)
                {
                    _clients.Clear();
                    _messagesTask = null;
                    _websocketService = null;
                    _src = null;
                }

            }, token, TaskCreationOptions.LongRunning);

            _messagesTask.Start();
        }