
WatsonWebsocket เป็นวิธีที่ง่ายที่สุดและเร็วที่สุดในการสร้างแอปพลิเคชันไคลเอนต์และเซิร์ฟเวอร์ที่ต้องอาศัยการส่งข้อความโดยใช้ WebSockets ของมัน. จริงหรือ. ง่าย.
ขอบคุณมากและขอบคุณมากสำหรับผู้ที่ใช้เวลาในการทำให้ห้องสมุดนี้ดีขึ้น!
@bryancrotaz @foddermk @caozero @danatobob @data33 @ak5nowman @jjxtra @martyix @rajeshdua123 @tersers @mackey-255 @krookoo1 @joreg @ilsnk @xbarra @mawkish.00 @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