
WatsonWebsocket adalah cara termudah dan tercepat untuk membangun aplikasi klien dan server yang mengandalkan pesan menggunakan websockets. Dia. Benar-benar. Mudah.
Terima kasih banyak dan penghargaan kepada mereka yang meluangkan waktu untuk membuat perpustakaan ini lebih baik!
Penyerahan @danatobob @data33 @ak5nowman @jjxtra @martyix @rajeshdua123 @terssters @mackey-255 @krookoo @joreg @konk @xbarra @mawkish00 @jlopvon @per-mmonr @xbarra @mawkish00 @exergist @ebarae99 @warstekhun @rubidium37 @codengine
Proyek uji untuk klien ( TestClient ) dan server ( TestServer ) disertakan yang akan membantu Anda memahami dan melatih perpustakaan kelas.
Proyek uji yang memunculkan server dan klien dan bertukar pesan dapat ditemukan di sini: https://github.com/jchristn/watsonwebsockettest
WatsonWebsocket saat ini mengandalkan dukungan WebSocket yang hadir dalam sistem operasi yang mendasarinya. Windows 7 tidak mendukung websockets.
SSL didukung di Watsonwebsocket. Konstruktor untuk WatsonWsServer dan WatsonWsClient menerima bool yang menunjukkan apakah SSL harus diaktifkan atau tidak. Sejak websockets, dan sebagai produk sampingan watsonwebsocket, gunakan https, mereka mengandalkan sertifikat di dalam toko sertifikat sistem operasi Anda. Sertifikat pengujian disediakan dalam proyek TestClient dan TestServer yang dapat digunakan untuk tujuan pengujian. Ini tidak boleh digunakan dalam produksi.
Untuk informasi lebih lanjut tentang penggunaan sertifikat SSL, silakan merujuk ke wiki.
Guid di ClientMetadataListClients sekarang mengembalikan ClientMetadata lengkapSend* Metode sekarang ambil guid sebagai lawan IpPort using WatsonWebsocket ;
WatsonWsServer server = new WatsonWsServer ( "[ip]" , port , true | false ) ;
server . ClientConnected += ClientConnected ;
server . ClientDisconnected += ClientDisconnected ;
server . MessageReceived += MessageReceived ;
server . Start ( ) ;
static void ClientConnected ( object sender , ConnectionEventArgs args )
{
Console . WriteLine ( "Client connected: " + args . Client . ToString ( ) ) ;
}
static void ClientDisconnected ( object sender , DisconnectionEventArgs args )
{
Console . WriteLine ( "Client disconnected: " + args . Client . ToString ( ) ) ;
}
static void MessageReceived ( object sender , MessageReceivedEventArgs args )
{
Console . WriteLine ( "Message received from " + args . Client . ToString ( ) + ": " + Encoding . UTF8 . GetString ( args . Data ) ) ;
} using WatsonWebsocket ;
WatsonWsClient client = new WatsonWsClient ( "[server ip]" , [ server port ] , true | false ) ;
client . ServerConnected += ServerConnected ;
client . ServerDisconnected += ServerDisconnected ;
client . MessageReceived += MessageReceived ;
client . Start ( ) ;
static void MessageReceived ( object sender , MessageReceivedEventArgs args )
{
Console . WriteLine ( "Message from server: " + Encoding . UTF8 . GetString ( args . Data ) ) ;
}
static void ServerConnected ( object sender , EventArgs args )
{
Console . WriteLine ( "Server connected" ) ;
}
static void ServerDisconnected ( object sender , EventArgs args )
{
Console . WriteLine ( "Server disconnected" ) ;
} server = new WatsonWsServer ( "http://localhost:9000/" ) ;
server . Start ( ) ; let socket = new WebSocket ( "ws://localhost:9000/test/" ) ;
socket . onopen = function ( ) { console . log ( "success" ) ; } ;
socket . onmessage = function ( msg ) { console . log ( msg . data ) ; } ;
socket . onclose = function ( ) { console . log ( "closed" ) ; } ;
// wait a moment
socket . send ( "Hello, world!" ) ; Saat Anda mengonfigurasi WatsonWebsocket untuk mendengarkan pada 127.0.0.1 atau localhost , itu hanya akan menanggapi permintaan yang diterima dari dalam mesin lokal.
Untuk mengonfigurasi akses dari node lain di luar localhost , gunakan yang berikut:
* atau + . Anda harus:127.0.0.1 , Anda mungkin perlu berjalan sebagai administrator (ini tergantung pada sistem operasi)netsh :netsh http show urlaclnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostname dan port adalah nilai yang Anda gunakan di konstruktorSilakan merujuk ke changelog.md untuk detailnya.