WebSocket Server
Verfasst: 09.02.2015 00:47
				
				Guten Tag,
hiermit stelle ich mein Modul zum erstellen eines WebSocket-Servers vor.
Mit WebSockets lassen sich ohne große Probleme dauerhafte Verbindungen zwischen Webseiten und Webservern herstellen.
Es ist damit möglich Webseiten daten zu schicken, ohne dass diese Anfragen senden müssen.
Anwendungen könnten sein:
Es ist ein Beispiel in form einer Chat-Applikation im Repository vorhanden.
Der Client ist in Javascript und HTML geschrieben und der Server natürlich in PureBasic.
Über diesen Link kommt man direkt zum Client.
Der Client sollte sich sofort zu dem hier laufenden Server verbinden.
Falls diese nicht läuft kann jeder seinen eigenen Server kompilieren und starten.
Dazu muss einfach Example_Chat_Server.pb kompiliert und gestartet werden.
Wenn dann der Client geöffnet wird, wird dieser sich lokal verbinden.
Wichtige Befehle:
WebSocket-Server öffnen:
Ereignisse als callback empfangen:
Textframe senden:
WebSocket-Server schließen:
Dateien:
Viel Spaß damit.
			hiermit stelle ich mein Modul zum erstellen eines WebSocket-Servers vor.
Mit WebSockets lassen sich ohne große Probleme dauerhafte Verbindungen zwischen Webseiten und Webservern herstellen.
Es ist damit möglich Webseiten daten zu schicken, ohne dass diese Anfragen senden müssen.
Anwendungen könnten sein:
- Chat
 - Browserspiele
 - Kommunikation mit Webgadget
 
- Windows 7 x64
 - Sollte aber auf jeder anderen Plattform laufen
 
Es ist ein Beispiel in form einer Chat-Applikation im Repository vorhanden.
Der Client ist in Javascript und HTML geschrieben und der Server natürlich in PureBasic.
Über diesen Link kommt man direkt zum Client.
Der Client sollte sich sofort zu dem hier laufenden Server verbinden.
Falls diese nicht läuft kann jeder seinen eigenen Server kompilieren und starten.
Dazu muss einfach Example_Chat_Server.pb kompiliert und gestartet werden.
Wenn dann der Client geöffnet wird, wird dieser sich lokal verbinden.
Wichtige Befehle:
WebSocket-Server öffnen:
Code: Alles auswählen
*Server = WebSocket_Server::Create(8090, @WebSocket_Event())Code: Alles auswählen
Procedure WebSocket_Event(*Server, *Client, Event, *Event_Frame.WebSocket_Server::Event_Frame)
  Select Event
    Case WebSocket_Server::#Event_Connect
      PrintN(" #### Client connected: " + *Client)
      
    Case WebSocket_Server::#Event_Disconnect
      PrintN(" #### Client disconnected: " + *Client)
      ; !!!! Ab dem Moment bei dem dieses Ereignis eintritt ist der *Client nicht mehr gültig !!!!
      
    Case WebSocket_Server::#Event_Frame
      PrintN(" #### Frame received from " + *Client)
      
      ; #### OpCode stellt die Art des Frames dar.
      ; #### Entweder Text, Binär-Daten, Ping-Frames oder anderes.
      ; #### Wichtig für den Endanwender sind meist nur die Text- und Binärframes.
      Select *Event_Frame\Opcode
        Case WebSocket_Server::#Opcode_Ping
          Debug "Client sent a ping frame"
        Case WebSocket_Server::#Opcode_Text
          Debug "Text received: " + PeekS(*Event_Frame\Payload, *Event_Frame\Payload_Size, #PB_UTF8|#PB_ByteLength)
        Case WebSocket_Server::#Opcode_Binary
          ; *Event_Frame\Payload contains the data, *Event_Frame\Payload_Size is the size of the data in bytes
      EndSelect
      
  EndSelect
EndProcedureCode: Alles auswählen
WebSocket_Server::Frame_Text_Send(*Server, *Client, "Hello Client!")Code: Alles auswählen
Free(*Server)