Kommentar: Im Allgemeinen werden Benutzerinformationen, die auf traditionellen Webseiten registriert sind, über Post oder AJAX an die Seite übermittelt. Nach dem Eintritt in HTML5 haben wir eine andere Methode, um über WebSocket mit Daten zu interagieren. Wir werden es als nächstes ausführlich vorstellen. Freunde, die wissen müssen, können sich darauf beziehen.
Im Allgemeinen werden Benutzerinformationen, die in herkömmlichen Webseiten registriert sind, über Post oder AJAX an die Seite übermittelt. Nach HTML5 haben wir eine andere Methode, um mit Daten über WebSocket zu interagieren. WebSocket hat die Flexibilität, dass herkömmliche Webseiten in der Dateninteraktion nicht enthalten sind. Nachdem der Server eine lange Verbindung über WebSocket erstellt hat, kann er Daten direkt an den Client senden. Für jede Dateninteraktion müssen keine große Menge an HTTP -Headerinformationen mitbringen. Das WebSocket -Protokoll selbst unterstützt zwei Datenformate und Streams. Es ist sehr einfach, über Text JSON mit JavaScript zu interagieren. Die Kommunikation zwischen JSON und Websocket ist sehr bequem, aber um diese Bequemlichkeit zu erreichen, müssen wir immer noch einfache Verpackungen erstellen. Glücklicherweise sind die vorhandenen JSON -Komponenten auf verschiedenen Plattformen relativ ausgereift. Durch die Analyse der entsprechenden Methoden zur Zuordnung von JSON -Daten auf den Server wird diese durchgeführt.
Das Folgende ist eine einfache Benutzerregistrierung, um den Prozess der HTML5 -Interaktion mit JOSN und WebSocket widerzuspiegeln. Da es eingekapselt wurde, ist es sehr bequem zu bedienen.
HTML:Die Funktion ist sehr einfach und die Registrierungsinformationen werden nach der Verbindung zum WebSocket -Dienst eingereicht. Um flexibler zu sein, eröffnen wir das Verbindungsformular bei der Überwachung der Verbindung natürlich erneut. Der spezifische JS -Code lautet wie folgt:
Funktion Connect () {
Channel = new tcpChannel ();
Channel.Connected = Funktion (evt) {
$ ('#dlgConnect'). Dialog ('Close');
};
Channel.disposed = Funktion (evt) {
$ ('#dlgConnect'). Dialog ('Open');
};
Channel.Error = Funktion (evt) {
Alarm (EVT);
};
Channel.Connect ($ ('#txThost'). Val ());
}
Ist der Code sehr präzise? Der Hauptgrund ist, dass ein TCPChannel auf der Grundlage von WebSocket eingekapselt ist. Der detaillierte Code kann heruntergeladen und verstanden werden. Nachdem die Verbindung erfolgreich ist, geben Sie das Registrierungsformular ein.
Klicken Sie nach dem Ausfüllen einiger Registrierungsinformationen auf Registrieren, um die Informationen über WebSocket an den Server zu senden. Der relevante eingereichte JS -Code lautet wie folgt:
var invokeregister = {url: 'Handler.onregister', Parameter: {Benutzername: '', E -Mail: '', Passwort: ''}};
Funktion register () {
$ ('#frmregister'). Formular ('subine', {
OnSubmit: function () {
var isvalid = $ (this) .form ('validate');
if (isvalid) {
invOkeregister.parameters = $ ('#frmregister'). serializeObject ();
Channel.Send (invokeregister, Funktion (Ergebnis) {
Alert (Ergebnis.Data);
});
}
false zurückgeben;
}
});
}
Wenn die Überprüfungsdaten erfolgreich sind, kann ein Methode -Aufruf -Beschreibung Objekt über TCPChannel gesendet werden. Die URL ist die zum Aufruf angegebene Klassenmethode, und Parameter ist der Parameter der Methode, und die Parameter können auch komplexe Strukturtypen sein. Der zweite Parameter ist eine Rückrufverarbeitung.
C#Der Dienst basiert auf der Erweiterung von Beetle, sodass der Code sehr einfach ist. Der Logikmethodencode für die obige Registrierung lautet wie folgt:
öffentlicher Klassenhandler
{
öffentlicher Zeichenfolge Onregister (String -Benutzername, String -E -Mail, Zeichenfolge Passwort)
{
Console.WriteLine (Benutzername);
Console.WriteLine (E -Mail);
Console.WriteLine (Passwort);
Rückgabe -Benutzername;
}
}
Die Methode muss nur die relevanten Parameter definieren. Der Meldungerweiterungscontroller des Beetle analysiert automatisch die von JS von JS zur Analyse eingereichten JSON -Daten und binden sie an die relevanten Methoden für die Ausführung. Der detaillierte Code des Controllers kann auch durch Download erhalten werden. Nach Abschluss der Logik müssen wir nur den entsprechenden WebSocket -Dienst einfach öffnen.
{
statische void main (String [] args)
{
Beetle.Controllers.Controller.register (New Handler ());
Tcputils.setup ("käfer");
Programm Server = neues Programm ();
server.open (8088);
Console.writeLine ("WebSocket start@8088");
System.Threading.Thread.sleep (-1);
}
Protected Override void OnError (Objektabsender, ChannelErrorEventArgs E)
{
Base.onError (Absender, e);
Console.writeLine (e.Exception.message);
}
geschützte Überschreibung void onconnected (Objektabsender, ChannelEventArgs E)
{
Base.onconnected (Absender, e);
Console.writeLine ("{0} Connected", E.Channel.endpoint);
}
geschütztes override void OnDisposed (Objektabsender, ChannelDisposedEventArgs E)
{
Base.onDisposed (Absender, e);
Console.writeLine ("{0} verteilt", e.Channel.endpoint);
}
}
Diese Art von WebSocket -Objektmeldungsinteraktion und -verarbeitung basierend auf HTML5 ist abgeschlossen, und es ist nur eine kleine Menge Code erforderlich, um die Dateninteraktionsverarbeitung von JS und Diensten implementieren zu können. Um diese bequeme Wechselwirkungsfunktion zu erreichen, kann die folgende Kapselung nicht gespeichert werden. WebSocket -Protokollanalyse, Objekt JSON -Verarbeitung und Nachrichtenkontrollverteilung; Wenn Sie die relevanten Details kennen möchten, können Sie den Quellcode zum Anzeigen herunterladen.Webocket.server.rar (641.79 kb)