
WatsonWebSocket es la forma más fácil y rápida de crear aplicaciones de clientes y servidores que dependen de los mensajes utilizando WebSockets. Es. En realidad. Fácil.
¡Muchas gracias y mucho aprecio a aquellos que se toman el tiempo para mejorar esta biblioteca!
@BryancroTaz @Foddermk @Caozero @danatobob @data33 @ak5nowman @jjxtra @martyix @rajeshdua123 @tersers @mackey-255 @krookoo1 @joreg @ilsnk @xbarra @mawkish00 @jlopvet @marco-manfroni-perugiatiming @Exergist @eBarale99 @warstekhun @rubidium37 @Codengine
Se incluye un proyecto de prueba tanto para el cliente ( TestClient ) como para el servidor ( TestServer ) que lo ayudará a comprender y ejercer la biblioteca de clases.
Aquí se puede encontrar un proyecto de prueba que genere un servidor y un cliente y se intercambia mensajes: https://github.com/jchristn/watsonwebsockettest
WatsonWebSocket se basa actualmente en que el soporte de WebSocket está presente en el sistema operativo subyacente. Windows 7 no admite WebSockets.
SSL es apoyado en WatsonwebSocket. Los constructores de WatsonWsServer y WatsonWsClient aceptan un bool que indica si SSL debe estar habilitado o no. Dado que WebSockets, y como subproducto WatsonWebSocket, usan HTTPS, dependen de los certificados dentro del almacén de certificados de su sistema operativo. Se proporciona un certificado de prueba en los proyectos TestClient y TestServer que pueden usarse para fines de prueba. Estos no deben usarse en la producción.
Para obtener más información sobre el uso de certificados SSL, consulte el wiki.
Guid en ClientMetadataListClients ahora devuelve ClientMetadata completoSend* métodos ahora tome guid en lugar de 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!" ) ; Cuando configura WatsonWebSocket para escuchar en 127.0.0.1 o localhost , solo responderá a las solicitudes recibidas de la máquina local.
Para configurar el acceso desde otros nodos fuera de localhost , use lo siguiente:
* o + . Usted debe:127.0.0.1 , es posible que deba ejecutar como administrador (esto depende del sistema operativo)netsh :netsh http show urlaclnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostname y port son los valores que está utilizando en el constructorConsulte ChangeLog.md para más detalles.