Comentário: Geralmente, as informações do usuário registradas nas páginas da web tradicionais são enviadas à página por meio de postagem ou AJAX. Depois de inserir o HTML5, temos outro método para interagir com os dados através do WebSocket. Vamos apresentá -lo em detalhes a seguir. Amigos que precisam saber podem se referir a ele.
Geralmente, as informações do usuário registradas nas páginas da web tradicionais são enviadas à página por meio de postagem ou Ajax. Após o HTML5, temos outro método para interagir com os dados através do WebSocket. O WebSocket tem a flexibilidade de que as páginas da web tradicionais não tenham na interação de dados. Depois de estabelecer uma conexão longa através do WebSocket, o servidor pode enviar diretamente dados para o cliente. Não há necessidade de trazer uma grande quantidade de informações do cabeçalho HTTP para cada interação de dados. O próprio protocolo WebSocket suporta dois formatos de dados texto e fluxos. É muito simples interagir com o JavaScript através do texto JSON. A comunicação entre JSON e WebSocket é muito conveniente, mas, para alcançar essa conveniência, ainda precisamos fazer embalagens simples. Felizmente, os componentes JSON existentes em várias plataformas são relativamente maduros. Ao analisar os métodos correspondentes de mapear dados JSON para o servidor, eles são executados.
A seguir, é apresentado um registro simples do usuário para refletir o processo de HTML5 interagindo com Josn e WebSocket. Como foi encapsulado, é muito conveniente de usar.
Html:A função é muito simples e as informações de registro são enviadas após a conexão com o serviço WebSocket. Obviamente, para ser mais flexível, reabrimos o formulário de conexão ao monitorar a conexão é fechada. O código JS específico é o seguinte:
function Connect () {
canal = novo tcpChannel ();
canal.Connected = function (EVT) {
$ ('#dlgConnect'). Dialog ('Close');
};
canal.disposed = function (evt) {
$ ('#dlgConnect'). Dialog ('aberto');
};
Channel.error = function (EVT) {
alerta (EVT);
};
canal.connect ($ ('#txthost'). val ());
}
O código é muito conciso? O principal motivo é que um TCPChannel é encapsulado com base no WebSocket. O código detalhado pode ser baixado e compreendido. Depois que a conexão for bem -sucedida, você insere o formulário de registro.
Depois de preencher algumas informações de registro, clique em Registrar -se para enviar as informações ao servidor através do WebSocket. O código JS enviado relevante é o seguinte:
var InvoKeregister = {url: 'Handler.oNregister', parâmetros: {nome de usuário: '', email: '', senha: ''}};
Função Register () {
$ ('#frmregister'). form ('submeter', {
Onsubmit: function () {
var isValid = $ (this) .form ('validate');
if (isValid) {
InvoKeregister.parameters = $ ('#frMregister'). SerializeObject ();
Channel.send (InvoKeregister, function (resultado) {
alerta (resultado.data);
});
}
retornar falso;
}
});
}
Quando os dados de verificação são bem -sucedidos, eles podem enviar um objeto de descrição de chamada de método através do TCPCHANNEL. O URL é o método de classe especificado para chamar, e os parâmetros são o parâmetro do método, e os parâmetros também podem ser tipos de estrutura complexos. O segundo parâmetro é um processamento de retorno de chamada.
C#O serviço é baseado no processamento de extensão de Beetle, portanto o código é muito simples. O código do método lógico para o registro acima é o seguinte:
Manipulador de classe pública
{
public string onRegister (nome de usuário da string, string email, senha da string)
{
Console.WriteLine (nome de usuário);
Console.WriteLine (email);
Console.WriteLine (senha);
retornar nome de usuário;
}
}
O método precisa apenas definir os parâmetros relevantes. O controlador de extensão de mensagem do Beetle analisará automaticamente os dados JSON enviados pelo JS para análise e o vinculará aos métodos relevantes para execução. O código detalhado do controlador também pode ser obtido através do download. Após a conclusão da lógica, precisamos simplesmente abrir o serviço WebSocket relevante.
{
estático void main (string [] args)
{
Beetle.Controllers.Controller.Register (new Handler ());
TcputIls.setup ("Beetle");
Servidor de programas = novo programa ();
server.open (8088);
Console.WriteLine ("websocket start@8088");
System.threading.thread.sleep (-1);
}
Substituição protegida Void OnError (remetente de objeto, ChannelErReventArgs e)
{
base.onerror (remetente, e);
Console.WriteLine (e.Exception.Message);
}
substituição protegida void onconnect (remetente de objeto, canalEventArgs e)
{
base.onconnected (remetente, e);
Console.WriteLine ("{0} conectado", e.channel.endpoint);
}
Substituição protegida void ondisposed (remetente de objeto, canaldisisosedEventargs e)
{
base.ondisised (remetente, e);
Console.WriteLine ("{0} distribuído", e.channel.endpoint);
}
}
Esse tipo de interação e processamento da mensagem do objeto WebSocket com base no HTML5 é concluído e apenas uma pequena quantidade de código é necessária para implementar o processamento de interação de dados de JS e serviços. Para alcançar essa função de interação conveniente, o encapsulamento a seguir não pode ser salvo. Análise do Protocolo WebSocket, Processamento JSON do Objeto e Distribuição de Controle de Mensagens; Se você quiser saber os detalhes relevantes, pode baixar o código -fonte para visualizá -lo.Websocket.server.rar (641,79 KB)