///|
/// Every message goes back as it came.
async fn echo(
scope : @moonasgi.Scope,
receive : @moonasgi.Receive,
send : @moonasgi.Send,
) -> Unit {
guard scope is WebSocket(_) else { return }
for ;; {
match receive() {
WebSocketConnect =>
send(@moonasgi.Event::WebSocketAccept(subprotocol=None, headers=[]))
WebSocketReceive(text=Some(text), ..) =>
send(@moonasgi.Event::WebSocketSendText(text))
WebSocketReceive(bytes=Some(bytes), ..) =>
send(@moonasgi.Event::WebSocketSendBytes(bytes))
WebSocketDisconnect(..) => break
_ => ()
}
}
}
///|
async fn main {
@mooncat.serve(echo, port=9001)
}