Protokol WebSocket menyediakan saluran komunikasi dua hala (dupleks penuh) melalui satu sambungan TCP tunggal. Berbeza dengan protokol HTTP tradisional yang bergantung pada kitaran permintaan dan respons, WebSocket membolehkan pelayan menghantar data ke pelanggan secara masa nyata tanpa perlu menunggu permintaan daripada pelanggan. Pelanggan Ujian WebSocket ialah alat berasaskan penyemak imbas yang direka untuk membantu pembangun, jurutera integrasi, kakitangan jaminan kualiti (QA), dan operasi (Ops) menyambung, menghantar mesej teks, serta menganalisis log komunikasi dengan pelayan WebSocket secara manual.
Aliran Kerja dan Kitaran Hayat Sambungan
Sambungan ke pelayan WebSocket melalui alat ini tidak berlaku secara automatik. Proses komunikasi mengikut fasa kitaran hayat yang ketat seperti berikut:
- Inisiasi: Sambungan ke pelayan WebSocket hanya bermula apabila anda memilih "Sambung". Sepanjang proses ini, alat akan memaparkan status "Menyambung ke
‹address›…". - Sambungan Berjaya: Apabila jabat tangan (handshake) WebSocket berjaya, status akan bertukar kepada "Disambungkan kepada
‹address›." dan peristiwa ini direkodkan dalam log. - Pertukaran Data: Pengguna boleh menghantar mesej teks satu demi satu. Setiap mesej yang dihantar dan diterima akan dikira dan dipaparkan pada pembilang "Dihantar" dan "Diterima".
- Penutupan: Sambungan boleh ditutup oleh pelanggan dengan memilih "Putuskan sambungan" (yang akan memaparkan "Menutup sambungan…") atau ditutup secara langsung oleh pelayan. Apabila ditutup, log akan memaparkan "Ditutup dengan kod
‹code›(‹clean›). Sebab:‹reason›".
Jika pelayan tidak membuka sambungan dalam tempoh 10 saat, percubaan tersebut akan dihentikan dan alat akan memaparkan ralat "Pelayan tidak membuka sambungan dalam 10 saat".
Protokol ws:// dan wss:// serta Peraturan Alamat
Alat ini memerlukan alamat WebSocket yang lengkap dan sah untuk memulakan sambungan. Terdapat dua skema protokol yang disokong:
ws://(WebSocket): Protokol tidak disulitkan yang berjalan di atas TCP biasa. Ia serupa dengan HTTP dan terdedah kepada pintasan data.wss://(WebSocket Secure): Protokol disulitkan menggunakan Transport Layer Security (TLS). Ia serupa dengan HTTPS dan memastikan data yang dihantar antara penyemak imbas dan pelayan adalah selamat daripada intipan pihak ketiga.
Alat ini menguatkuasakan beberapa peraturan input untuk memastikan kestabilan operasi:
- Skema Sokongan: Hanya skema
ws://atauwss://sahaja yang dibenarkan. Jika anda menggunakan skema lain, alat akan memaparkan ralat "Gunakan alamat ws:// atau wss://". - Kesempurnaan Alamat: Jika alamat yang dimasukkan tidak lengkap, amaran "Masukkan alamat WebSocket yang lengkap seperti wss://example.com/socket" akan dipaparkan.
- Had Panjang Alamat: Alamat WebSocket yang dimasukkan dihadkan kepada maksimum 2,048 aksara. Jika had ini dilampaui, amaran "Alamat itu luar biasa panjang. Simpan di bawah aksara 2,048." akan muncul.
Penghantaran Mesej Teks dan Had Data
Setelah sambungan berjaya diwujudkan, anda boleh mula menghantar data ke pelayan. Alat ini membolehkan anda menaip mesej teks pada ruangan input dan menghantarnya dengan menekan butang "Hantar mesej" atau menggunakan pintasan papan kekunci Ctrl+Enter atau Command+Enter.
Walau bagaimanapun, terdapat beberapa peraturan dan had teknikal yang perlu dipatuhi:
- Status Sambungan: Anda tidak boleh menghantar mesej jika sambungan belum aktif. Jika anda cuba berbuat demikian, alat akan memaparkan ralat "Sambung sebelum menghantar mesej.".
- Had Saiz Mesej: Mesej teks yang ingin dihantar dihadkan kepada maksimum 100,000 aksara. Jika mesej melebihi had ini, alat akan memaparkan ralat "Mesej itu luar biasa besarnya. Simpan di bawah aksara 100,000.".
- Mesej Binari: Walaupun alat ini direka untuk menghantar mesej teks secara manual, ia tetap boleh menerima dan merekodkan mesej binari daripada pelayan. Mesej binari ini akan dilabelkan sebagai "Mesej binari" diikuti dengan saiznya dalam unit bait, contohnya "bait".
Pengurusan Log Mesej dan Had Paparan
Log mesej berfungsi sebagai rekod kronologi bagi semua aktiviti sambungan dan pertukaran data. Setiap entri dalam log dikategorikan mengikut jenisnya seperti "Dihantar", "Diterima", atau "Peristiwa".
Untuk memastikan halaman web kekal responsif dan tidak mengalami masalah prestasi akibat limpahan data, peraturan pengurusan log berikut diguna pakai:
- Had Entri Log: Log mesej hanya menyimpan maksimum 500 entri. Apabila jumlah entri melebihi had ini, entri lama akan dipadamkan secara automatik dan alat akan memaparkan pemberitahuan "
‹count›entri log lama telah dialih keluar untuk memastikan halaman ini responsif.". - Had Paparan Aksara: Setiap entri log individu hanya memaparkan maksimum 20,000 aksara. Jika mesej yang diterima atau dihantar melebihi had ini, kandungan selebihnya akan dipotong dan digantikan dengan mesej "
‹count›lebih banyak aksara tersembunyi dalam pratonton ini.". - Fungsi Kosongkan Log: Anda boleh memilih "Kosongkan log" untuk membersihkan semua paparan entri pada skrin. Tindakan ini hanya memadamkan paparan log sahaja; ia tidak akan memutuskan sambungan aktif atau menetapkan semula pembilang jumlah mesej yang dihantar dan diterima.
Memahami Kod Penutupan dan Ralat Sambungan
Apabila sambungan WebSocket ditutup, protokol WebSocket (RFC 6455) menetapkan bahawa kod status berangka mesti dihantar untuk menyatakan sebab penutupan. Alat ini memaparkan "Tutup kod" berangka tersebut bersama dengan status sama ada penutupan itu "bersih" atau "tidak bersih" (unclean).
- Penutupan Bersih (Clean): Berlaku apabila jabat tangan penutupan WebSocket berjaya diselesaikan sepenuhnya oleh kedua-dua belah pihak (pelanggan dan pelayan).
- Penutupan Tidak Bersih (Not Clean): Berlaku apabila sambungan terputus secara tiba-tiba disebabkan oleh kegagalan rangkaian, proses pelayan terhenti, atau kegagalan sistem pengangkutan yang lain.
Jika pelayan memberikan sebab penutupan, ia akan dipaparkan dalam log. Jika tiada sebab diberikan, alat akan memaparkan "Tiada alasan dibekalkan".
Apabila sambungan gagal diwujudkan sejak awal, alat akan memaparkan ralat: "Sambungan gagal. Semak alamat, sijil, ketersediaan pelayan dan peraturan akses penyemak imbas.". Kegagalan ini biasanya disebabkan oleh:
- Alamat pelayan yang salah atau tidak aktif.
- Ralat sijil SSL/TLS (terutamanya apabila menyambung ke
wss://dengan sijil yang tidak sah atau ditandatangani sendiri). - Sekatan CORS (Cross-Origin Resource Sharing) atau peraturan keselamatan penyemak imbas yang menghalang sambungan dari halaman web tertentu.
Had Keupayaan Penyemak Imbas dan Privasi Data
Alat ini beroperasi sepenuhnya di dalam penyemak imbas pengguna. Tiada sebarang data, alamat WebSocket, atau kandungan mesej yang dimuat naik ke BroBroGo atau disimpan oleh halaman ini. Semua komunikasi berlaku secara terus dari penyemak imbas anda ke pelayan WebSocket yang anda tentukan. Walau bagaimanapun, disebabkan ia berjalan di atas API WebSocket standard penyemak imbas, terdapat beberapa had teknikal yang tidak dapat dielakkan:
- Tiada Pengepala Tersuai: Alat ini tidak boleh menambah pengepala jabat tangan (handshake headers) tersuai seperti
AuthorizationatauUser-Agentkerana API penyemak imbas tidak membenarkannya. - Tiada Pintasan Sijil: Alat ini tidak boleh memintas ralat sijil SSL/TLS.
- Tiada Kawalan Bingkai Rangkaian: Alat ini tidak dapat mendedahkan pemecahan mesej pada peringkat rangkaian, atau menunjukkan bingkai kawalan Ping dan Pong yang diuruskan secara automatik oleh penyemak imbas.
Soalan Lazim (FAQ)
Apakah data WebSocket yang boleh saya periksa di sini? Anda boleh melihat setiap teks atau mesej binari yang didedahkan oleh penyemak imbas anda, arah, masa dan saiznya, serta kod tutup akhir, sebab dan status tutup bersih. Halaman penyemak imbas tidak boleh mendedahkan serpihan peringkat rangkaian atau bingkai kawalan Ping dan Pong.
Mengapa sambungan gagal walaupun alamat berfungsi di tempat lain? Pada halaman selamat, penyemak imbas mungkin memerlukan wss://. Pelayan juga mesti menerima sambungan penyemak imbas dan asal halaman. Pelanggan ini tidak boleh menambah pengepala jabat tangan tersuai, memintas ralat sijil atau mengatasi peraturan akses pelayan.
Bolehkah saya menguji dengan pengeluaran atau data sensitif? Gunakan data sintetik apabila boleh. Alih keluar nama, butiran akaun, rekod undang-undang, maklumat kewangan dan maklumat kesihatan sebelum menghantar. Mesej pergi ke pelayan yang anda pilih, yang peraturan pengelogan dan pengekalannya berada di luar kawalan halaman ini.
Adakah alat ini menyimpan sejarah mesej saya selepas halaman ditutup? Tidak. Tiada apa-apa yang dimuat naik ke BroBroGo atau disimpan oleh halaman ini. Sebaik sahaja anda menutup atau memuat semula halaman, semua log mesej dan pembilang akan dipadamkan sepenuhnya.