
watsonwebsocket是構建依賴使用Websocket消息傳遞的客戶端和服務器應用程序的最簡單,最快的方法。它是。真的。簡單的。
非常感謝那些花時間使這個圖書館變得更好的人!
@bryancrotaz @foddermk @caozero @danatobob @data33 @ak5nowman @jjjxtra @jjjxtra @jjjestyix @rajeshdua123 @ersers @ersers @mackey-255 @krookoo1 @krookoo1 @joreg @joreg @ilssnk @xbarra @xbarra @xbarra @jlopmanii @jlopmanir @marcemmani- @marcormmani- @marcocroni- @marcocmani- @marcocmani--marcocmani--- @Exergist @ebarale99 @warstekhun @rubidium37 @codengine
包括客戶端( TestClient )和服務器( TestServer )的測試項目,這將幫助您理解和練習課堂庫。
可以在此處找到一個產生服務器和客戶端並交換消息的測試項目:https://github.com/jchristn/watsonwebsockockettest
WatsonWebsocket目前依賴於基礎操作系統中存在的Websocket支持。 Windows 7不支持Websocket。
SSL在Watsonwebsocket中得到了支持。 WatsonWsServer和WatsonWsClient的構造函數接受bool ,指示是否應啟用SSL。由於Websockets和副產品WatsonWebsocket,請使用HTTPS,因此它們依賴於操作系統的證書存儲中的證書。在TestClient和TestServer項目中都提供了測試證書,可用於測試目的。這些不應用於生產。
有關使用SSL證書的更多信息,請參閱Wiki。
Guid確定ClientMetadata客戶ListClients現在返回完整的ClientMetadataSend*方法現在使用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以外的接口IP地址上收聽,則可能需要以管理員的身份運行(這是操作系統依賴的)netsh命令在操作系統中添加URL ACL:IE URL綁定:netsh http show urlaclnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostname和port是您在構造函數中使用的值有關詳細信息,請參考ChangElog.md。