Пример #1
0
        private void processarMensagemHandshake(Solicitacao objSolicitacao)
        {
            if (!"websocket".Equals(objSolicitacao.getStrHeaderValor("Upgrade")))
            {
                return;
            }

            this.strSecWebSocketKey = objSolicitacao.getStrHeaderValor("Sec-WebSocket-Key");

            if (string.IsNullOrEmpty(this.strSecWebSocketKey))
            {
                return;
            }

            this.strSessao = objSolicitacao.strSessao;

            if (string.IsNullOrEmpty(this.strSessao))
            {
                this.strSessao = Utils.getStrToken(32, DateTime.Now, this.intObjetoId);
            }

            Resposta objResposta = new Resposta(objSolicitacao);

            objResposta.intStatus = Resposta.INT_STATUS_CODE_101_SWITCHING_PROTOCOLS;

            objResposta.addHeader("Sec-WebSocket-Accept", this.strSecWebSocketAccept);

            this.responder(objResposta);

            this.booHandshake = true;

            this.onMensagemConnect(objSolicitacao);
        }
Пример #2
0
        protected void addAcessControl(Resposta objResposta, Interlocutor objInterlocutor)
        {
            if (objResposta == null)
            {
                return;
            }

            if (!Resposta.INT_STATUS_CODE_200_OK.Equals(objResposta.intStatus))
            {
                return;
            }

            if (objResposta.objSolicitacao == null)
            {
                return;
            }

            string strReferer = objResposta.objSolicitacao.getStrHeaderValor("referer");

            if (string.IsNullOrEmpty(strReferer))
            {
                return;
            }

            var uri = new Uri(strReferer);

            var strHost = ("http://" + uri.Host);

            if (objInterlocutor?.intHttpPorta != 80)
            {
                strHost = string.Format("http://{0}:{1}", uri.Host, objInterlocutor.intHttpPorta);
            }

            objResposta.addHeader("Access-Control-Allow-Credentials", "true");
            objResposta.addHeader("Access-Control-Allow-Methods", "POST");
            objResposta.addHeader("Access-Control-Allow-Origin", strHost);
        }