
WatsonWebsocket ist der einfachste und schnellste Weg, um Client- und Serveranwendungen zu erstellen, die mithilfe von Websockets auf Messaging beruhen. Es ist. Wirklich. Einfach.
Vielen Dank und viel Wertschätzung für diejenigen, die sich die Zeit nehmen, diese Bibliothek besser zu machen!
@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
Ein Testprojekt für Client ( TestClient ) und Server ( TestServer ) ist enthalten, das Ihnen hilft, die Klassenbibliothek zu verstehen und auszuüben.
Ein Testprojekt, bei dem hier ein Server und ein Client- und Austausch von Nachrichten erzeugt werden
Watsonwebsocket stützt sich derzeit auf WebSocket -Unterstützung, die im zugrunde liegenden Betriebssystem vorhanden sind. Windows 7 unterstützt keine Websockets.
SSL wird in Watsonwebocket unterstützt. Die Konstruktoren für WatsonWsServer und WatsonWsClient akzeptieren einen bool der angibt, ob SSL aktiviert werden sollte oder nicht. Da WebSockets und als Nebenprodukt Watsonwebsocket HTTPS verwenden, verlassen sie sich auf Zertifikate im Zertifikatspeicher Ihres Betriebssystems. Ein Testzertifikat wird sowohl in den TestClient als auch in TestServer -Projekten bereitgestellt, die für Testzwecke verwendet werden können. Diese sollten nicht in der Produktion verwendet werden.
Weitere Informationen zur Verwendung von SSL -Zertifikaten finden Sie im Wiki.
Guid in ClientMetadata identifiziert wurdenListClients gibt jetzt vollständige ClientMetadata zurückSend* Methoden nehmen jetzt im Gegensatz zu IpPort guid ein 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!" ) ; Wenn Sie Watsonwebsocket so konfigurieren, dass sie 127.0.0.1 oder localhost zuhören, wird nur auf Anfragen beantwortet, die von innerhalb des lokalen Maschine eingegangen sind.
Verwenden Sie Folgendes, um den Zugriff von anderen Knoten außerhalb von localhost zu konfigurieren:
* oder + . Sie müssen:127.0.0.1 anhören, müssen Sie möglicherweise als Administrator ausgeführt werden (dies ist ein Betriebssystem abhängig).netsh hinzufügen:netsh http show urlaclnetsh http add urlacl url=http://[hostname]:[port]/ user=everyone listen=yeshostname und port die Werte sind, die Sie im Konstruktor verwendenWeitere Informationen finden Sie in ChangeLog.md.