
watsonwebsocket是构建依赖使用Websocket消息传递的客户端和服务器应用程序的最简单,最快的方法。它是。真的。简单的。
非常感谢那些花时间使这个图书馆变得更好的人!
@BryanCrotaz @FodderMK @caozero @Danatobob @Data33 @AK5nowman @jjxtra @MartyIX @rajeshdua123 @tersers @MacKey-255 @KRookoo1 @joreg @ilsnk @xbarra @mawkish00 @jlopvet @marco-manfroni-perugiatiming @GiaNTizmO @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。