
WatsonWebsocketは、WebSocketを使用してメッセージングに依存するクライアントおよびサーバーアプリケーションを構築する最も簡単で最速の方法です。その。本当に。簡単。
このライブラリをより良くするために時間をかける人たちに感謝し、感謝します!
@bryancrotaz @foddermk @caozero @danatobob @data33 @ak5nowman @jjxtra @martyix @rajeshdua123 @tersers @mackey-255 @krookoo1 @joreg @ilsnk @xbarra @mawkish00 @jlopvetmet @marco-manizimtim @marco-manizimtim @exergist @ebarale99 @warstekhun @rubidium37 @codengine
クライアント( TestClient )とサーバー( TestServer )の両方のテストプロジェクトが含まれており、クラスライブラリを理解して行使するのに役立ちます。
サーバーとクライアントを生成し、メッセージを交換するテストプロジェクトは、https://github.com/jchristn/watsonwebsockettestにあります。
WatsonWebsocketは現在、基礎となるオペレーティングシステムに存在するWebsocketサポートに依存しています。 Windows 7はWebSocketsをサポートしていません。
SSLはWatsonWebsocketでサポートされています。 WatsonWsServerとWatsonWsClientのコンストラクターは、SSLを有効にすべきかどうかを示すboolを受け入れます。 WebSockets、および副産物WatsonWebsocketとしてHTTPSを使用するため、オペレーティングシステムの証明書ストア内の証明書に依存しています。テスト目的で使用できるTestClientとTestServer両方のプロジェクトでテスト証明書が提供されます。これらは生産に使用しないでください。
SSL証明書の使用の詳細については、Wikiを参照してください。
ClientMetadataのGuidによって識別されていますListClients 、完全なClientMetadataを返すようになりましたIpPortとは対照的に、メソッドSend*メソッドはguidを取得します 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!" ) ; 127.0.0.1またはlocalhostで聴くようにWatsonWeBsocketを構成すると、ローカルマシン内から受け取ったリクエストにのみ応答します。
localhost以外の他のノードからのアクセスを構成するには、次を使用してください。
*または+使用します。絶対です:127.0.0.1以外のインターフェイスIPアドレスで聞く場合、管理者として実行する必要がある場合があります(これはオペレーティングシステムに依存しています)netshコマンドを使用して、オペレーティングシステム内でURL ACL、つまりURLバインディングを追加する必要がある場合があります。netsh http show urlaclを使用して既存のバインディングを確認してくださいnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostnameとport 、コンストラクターで使用している値です詳細については、changelog.mdを参照してください。