Komentar: Secara umum, informasi pengguna yang terdaftar di halaman web tradisional dikirimkan ke halaman melalui pos atau jax. Setelah memasukkan HTML5, kami memiliki metode lain untuk berinteraksi dengan data melalui WebSocket. Kami akan memperkenalkannya secara detail selanjutnya. Teman yang perlu diketahui bisa merujuknya.
Secara umum, informasi pengguna yang terdaftar di halaman web tradisional dikirimkan ke halaman melalui Post atau AJAX. Setelah HTML5, kami memiliki metode lain untuk berinteraksi dengan data melalui WebSocket. WebSocket memiliki fleksibilitas yang tidak dimiliki halaman web tradisional dalam interaksi data. Setelah membuat koneksi panjang melalui WebSocket, server dapat langsung mengirim data ke klien. Tidak perlu membawa sejumlah besar informasi header HTTP untuk setiap interaksi data. Protokol Websocket itu sendiri mendukung dua format data dan streaming. Sangat mudah untuk berinteraksi dengan JavaScript melalui Text Json. Komunikasi antara JSON dan WebSocket sangat nyaman, tetapi untuk mencapai kenyamanan ini, kami masih harus membuat kemasan sederhana. Untungnya, komponen JSON yang ada di berbagai platform relatif matang. Dengan menganalisis metode pemetaan data JSON yang sesuai ke server, itu dilakukan.
Berikut ini adalah pendaftaran pengguna sederhana untuk mencerminkan proses HTML5 yang berinteraksi dengan Josn dan Websocket. Karena telah dienkapsulasi, sangat nyaman untuk digunakan.
Html:Fungsi ini sangat sederhana, dan informasi pendaftaran dikirimkan setelah terhubung ke layanan WebSocket. Tentu saja, agar lebih fleksibel, kami membuka kembali formulir koneksi saat memantau koneksi ditutup. Kode JS spesifik adalah sebagai berikut:
fungsi connect () {
saluran = tcpchannel baru ();
channel.connected = function (evt) {
$ ('#dlgConnect'). Dialog ('tutup');
};
channel.disposed = function (evt) {
$ ('#dlgConnect'). Dialog ('terbuka');
};
channel.Error = function (evt) {
Peringatan (EVT);
};
channel.connect ($ ('#txThost'). Val ());
}
Apakah kodenya sangat ringkas? Alasan utamanya adalah bahwa TCPChannel dienkapsulasi berdasarkan Websocket. Kode terperinci dapat diunduh dan dipahami. Setelah koneksi berhasil, Anda memasukkan formulir pendaftaran.
Setelah mengisi beberapa informasi pendaftaran, klik Daftarkan untuk mengirimkan informasi ke server melalui WebSocket. Kode JS yang dikirimkan relevan adalah sebagai berikut:
var invokeregister = {url: 'handler.onregister', parameter: {username: '', email: '', kata sandi: ''}};
function register () {
$ ('#frmregister'). form ('kirim', {
Onsubmit: function () {
var isValid = $ (this) .form ('validate');
if (isValid) {
Invokeregister.parameters = $ ('#frmregister'). SerializeObject ();
channel.send (Invokeregister, function (hasil) {
waspada (result.data);
});
}
mengembalikan false;
}
});
}
Ketika data verifikasi berhasil, ia dapat mengirim objek deskripsi panggilan metode melalui tcpchannel. URL adalah metode kelas yang ditentukan untuk memanggil, dan paramter adalah parameter metode, dan parameter juga dapat berupa tipe struktur yang kompleks. Parameter kedua adalah pemrosesan panggilan balik.
C#Layanan ini didasarkan pada pemrosesan ekstensi Beetle, jadi kodenya sangat sederhana. Kode metode logika untuk pendaftaran di atas adalah sebagai berikut:
penangan kelas publik
{
String publik OnRegister (nama pengguna String, String Email, String Password)
{
Console.WriteLine (nama pengguna);
Console.WriteLine (email);
Console.writeLine (kata sandi);
mengembalikan nama pengguna;
}
}
Metode hanya perlu menentukan parameter yang relevan. Pengontrol ekstensi pesan kumbang akan secara otomatis menganalisis data JSON yang dikirimkan oleh JS untuk analisis dan mengikatnya ke metode yang relevan untuk dieksekusi. Kode rinci pengontrol juga dapat diperoleh melalui unduhan. Setelah logika selesai, kami hanya perlu hanya membuka layanan Websocket yang relevan.
{
statis void main (string [] args)
{
Beetle.controllers.controller.register (handler baru ());
Tcputils.setup ("Beetle");
Program server = program baru ();
server.open (8088);
Console.WriteLine ("Websocket Start@8088");
System.threading.thread.sleep (-1);
}
Override Void OnError (Pengirim Object, ChannelErroreventArgs e)
{
base.onerror (pengirim, e);
Console.WriteLine (E.Exception.Message);
}
Override yang dilindungi void onConnected (pengirim objek, channeleventArgs e)
{
base.onconnected (pengirim, e);
Console.writeLine ("{0} connected", e.channel.endpoint);
}
override void yang dilindungi Ondisposed (pengirim objek, channeldisposedEventArgs e)
{
base.ondisposed (pengirim, e);
Console.writeLine ("{0} didistribusikan", e.channel.endpoint);
}
}
Jenis interaksi dan pemrosesan pesan objek Websocket ini berdasarkan HTML5 selesai, dan hanya sejumlah kecil kode yang diperlukan untuk mengimplementasikan pemrosesan interaksi data JS dan layanan. Untuk mencapai fungsi interaksi yang nyaman ini, enkapsulasi berikut tidak dapat disimpan. Analisis Protokol Websocket, Objek Pemrosesan JSON dan Distribusi Kontrol Pesan; Jika Anda ingin mengetahui detail yang relevan, Anda dapat mengunduh kode sumber untuk melihatnya.Websocket.server.rar (641.79 kb)