WebSocket - noppoMan/Slimane GitHub Wiki

RFC-6455 WebSocket implementation for Slimane.

Server Example

1. Add WebSocketServer to your Package.swift

import PackageDescription

let package = Package(
    name: "WebSocketServer",
    dependencies: [
        .Package(url: "https://github.com/slimane-swift/WebSocketServer.git", majorVersion: 0, minor: 1),
    ]
)

2. Register WebSocketServer as Your Application's Middleware

import WebSocketServer
import Slimane

let app = Slimane()

let wsServer = WebSocketServer { socket, request in
    socket.onText { text in
        socket.send(text)
    }
}

app.use(wsServer)

try! app.listen()

3. Connect from WebBrowser

<!DOCTYPE HTML>
<html>
   <head>
	
      <script type="text/javascript">
         function WebSocketTest()
         {
            if ("WebSocket" in window)
            {
               alert("WebSocket is supported by your Browser!");
               
               // Let us open a web socket
               var ws = new WebSocket("ws://localhost:3000");
				
               ws.onopen = function()
               {
                  // Web Socket is connected, send data using send()
                  ws.send("Message to send");
                  alert("Message is sent...");
               };
				
               ws.onmessage = function (evt) 
               { 
                  var received_msg = evt.data;
                  alert("Message is received...");
               };
				
               ws.onclose = function()
               { 
                  // websocket is closed.
                  alert("Connection is closed..."); 
               };
            }
            
            else
            {
               // The browser doesn't support WebSocket
               alert("WebSocket NOT supported by your Browser!");
            }
         }
      </script>
		
   </head>
   <body>
   
      <div id="sse">
         <a href="javascript:WebSocketTest()">Run WebSocket</a>
      </div>
      
   </body>
</html>
⚠️ **GitHub.com Fallback** ⚠️