echo(event: dever.websocket.MessageEvent.Read(message), socket: dever.system.WebSocket) () { dever.websocket.send(socket, message) } echo(event: dever.websocket.MessageEvent.Failed(message), socket: dever.system.WebSocket) () { fail(dever.websocket.MessageEvent.Failed(message)) } route(request: dever.http.Request, reply: dever.system.HttpReply) () { socket = dever.websocket.accept(reply, dever.websocket.defaultLimits()) each(echo, dever.websocket.messages(socket), socket) } serve(listener: dever.system.Listener) () { dever.http.serveLive(route, listener, dever.http.defaultLimits(), dever.http.defaultLiveLimits()) } received(state: dever.websocket.ReceiveState.Read(message)) (answer: Bool) { answer = message == dever.websocket.Message.Text("你好") } received(state: dever.websocket.ReceiveState.End) (answer: Bool) { answer = false } verify() (answer: Bool) { listener = dever.net.listen("127.0.0.1", 0) server = run(serve(listener)) socket = dever.websocket.connect("127.0.0.1", dever.net.port(listener), "/echo", dever.websocket.defaultLimits()) dever.websocket.send(socket, dever.websocket.Message.Text("你好")) answer = received(dever.websocket.receive(socket)) dever.net.closeListener(listener) dever.websocket.close(socket, 1000, "结束") wait(server) } opened() (answer: Bool) { listener = dever.net.listen("127.0.0.1", 0) server = run(serve(listener)) url = "ws://127.0.0.1:" + int.toText(dever.net.port(listener)) + "/echo" socket = dever.websocket.open(url, dever.tls.system(), dever.websocket.defaultLimits()) dever.websocket.send(socket, dever.websocket.Message.Text("你好")) answer = received(dever.websocket.receive(socket)) dever.websocket.close(socket, 1000, "") dever.net.closeListener(listener) wait(server) } invalid() () { socket = dever.websocket.connect("hostname", 80, "/", dever.websocket.defaultLimits()) dever.websocket.close(socket, 1000, "") } sendText(socket: dever.system.WebSocket, text: Text) () { dever.websocket.send(socket, dever.websocket.Message.Text(text)) } sendBinary(socket: dever.system.WebSocket, data: Bytes) () { dever.websocket.send(socket, dever.websocket.Message.Binary(data)) } sendMessage(socket: dever.system.WebSocket, message: dever.websocket.Message) () { dever.websocket.send(socket, message) }