
تعد WatsonWebsocket أسهل وأسرع طريقة لبناء تطبيقات العميل والخادم التي تعتمد على الرسائل باستخدام WebSockets. إنه. حقًا. سهل.
شكرا جزيلا وتقدير كبير لأولئك الذين يستغرقون الوقت لجعل هذه المكتبة أفضل!
bryancrotazfoddermk @caozerodanatobob @data33 @ak5nowman @jjjxtramartyix @rajeshdua123 @mackey-255 @krookoo1joregiizefroftafroftafrofet @ exergist @ebarale99 warstekhun @rubidium37 codengine
يتم تضمين مشروع اختبار لكل من العميل ( TestClient ) والخادم ( TestServer ) والذي سيساعدك على فهم وممارسة مكتبة الفصل.
يمكن الاطلاع على مشروع اختبار يولد خادم وعميل وتبادل الرسائل هنا: https://github.com/jchristn/watsonwebsockettest
يعتمد WatsonWebsocket حاليًا على دعم WebSocket الموجود في نظام التشغيل الأساسي. Windows 7 لا يدعم WebSockets.
يتم دعم SSL في Watsonwebsocket. يقبل منشئو WatsonWsServer و WatsonWsClient bool يشير إلى ما إذا كان ينبغي تمكين SSL أم لا. نظرًا لأن WebSockets ، وكنتائج ثانوية WatsonWebsocket ، تستخدم HTTPS ، فإنها تعتمد على الشهادات داخل متجر الشهادة لنظام التشغيل الخاص بك. يتم توفير شهادة اختبار في كل من مشاريع TestClient و TestServer التي يمكن استخدامها لأغراض الاختبار. لا ينبغي استخدام هذه في الإنتاج.
لمزيد من المعلومات حول استخدام شهادات SSL ، يرجى الرجوع إلى الويكي.
Guid في ClientMetadataListClients الآن يعيد ClientMetadata الكاملSend* أساليب الآن تأخذ guid بدلاً من 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!" ) ; عند تكوين WatsonWebsocket للاستماع على 127.0.0.1 أو localhost ، فإنه لن يستجيب فقط للطلبات التي تم استلامها من داخل الجهاز المحلي.
لتكوين الوصول من العقد الأخرى خارج localhost ، استخدم ما يلي:
* أو + . يجب عليك أن:127.0.0.1 ، فقد تحتاج إلى تشغيل كمسؤول (يعتمد هذا على نظام التشغيل)netsh :netsh http show urlaclnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostname port القيمان اللتين تستخدمهما في المُنشئيرجى الرجوع إلى changelog.md للحصول على التفاصيل.