|
// retoor <retoor@molodetz.nl>
|
|
|
|
import "websocket" for WebSocketServer
|
|
|
|
System.print("=== WebSocket Server Demo ===")
|
|
System.print("Listening on ws://0.0.0.0:8080\n")
|
|
|
|
var server = WebSocketServer.bind("0.0.0.0", 8080)
|
|
|
|
while (true) {
|
|
System.print("Waiting for connection...")
|
|
var ws = server.accept()
|
|
|
|
if (ws == null) {
|
|
System.print("Failed to accept connection")
|
|
continue
|
|
}
|
|
|
|
System.print("Client connected")
|
|
|
|
while (ws.isOpen) {
|
|
var msg = ws.receive()
|
|
|
|
if (msg == null) {
|
|
System.print("Connection lost")
|
|
break
|
|
}
|
|
|
|
if (msg.isClose) {
|
|
System.print("Client sent close frame (code: %(msg.closeCode))")
|
|
break
|
|
}
|
|
|
|
if (msg.isText) {
|
|
System.print("Received text: %(msg.text)")
|
|
ws.send("Echo: %(msg.text)")
|
|
} else if (msg.isBinary) {
|
|
System.print("Received binary: %(msg.bytes.count) bytes")
|
|
ws.sendBinary(msg.bytes)
|
|
}
|
|
}
|
|
|
|
System.print("Client disconnected\n")
|
|
}
|