コード例 #1
0
ファイル: Seed.cs プロジェクト: fabiohvp/ControleSocial
        public override void OnAuthorize(IDictionary <string, StringValues> headers)
        {
            if (headers.ContainsKey("socket-guid"))
            {
                var socketGuid = headers["socket-guid"];

                if (WebSocketWorkflowHandler.Observers.ContainsKey(socketGuid))
                {
                    WebSocketObserver = WebSocketWorkflowHandler.Observers[socketGuid];
                }
            }

            base.OnAuthorize(headers);
        }
コード例 #2
0
ファイル: WebSocketServer.cs プロジェクト: jcowart/Symbiote
        protected virtual void OnIncommingConnection(IAsyncResult ar)
        {
            var newSocket = Listener.EndAccept(ar);
            var clientId = Guid.NewGuid().ToString();
            if(Handshake(newSocket))
            {
                var webSocket = _socketFactory.GetSocket(clientId, newSocket, _bufferSize);
                webSocket.OnDisconnect = x =>
                {
                    if (ClientDisconnected != null) ClientDisconnected(x);
                };
                ClientSockets.Add(webSocket);

                var observer = new WebSocketObserver()
                {
                    ClientId = clientId,
                    ClientDisconnect = x => { if (ClientDisconnected != null) ClientDisconnected(x); },
                    ClientError = (x, ex) => { "Client {0} \r\n\t {1}".ToError<ISocketServer>(x, ex); },
                    MessageReceived = MessageReceived
                };

                _socketObservers[clientId] = webSocket.Subscribe(observer);   
            }

            ListenForConnections();
        }