
Watsonwebsocket은 Websockets를 사용하여 메시징에 의존하는 클라이언트 및 서버 응용 프로그램을 구축하는 가장 쉽고 빠른 방법입니다. 그것은. 정말. 쉬운.
이 도서관을 개선하는 데 시간이 걸리는 사람들에게 많은 감사와 감사합니다!
@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
클라이언트 ( 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 반환합니다Send* 메서드는 이제 IpPort 와 달리 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!" ) ; WatsonWebSocket이 127.0.0.1 또는 localhost 에서 청취하도록 구성하면 로컬 컴퓨터 내에서받은 요청에만 응답합니다.
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를 참조하십시오.