import "websocket" for WebSocket, WebSocketServer
import "scheduler" for Scheduler
import "timer" for Timer
var testResults = []
var port = 19876
Scheduler.add {
var server = WebSocketServer.bind("127.0.0.1", port)
var ws = server.accept()
if (ws != null) {
var msg = ws.receive()
if (msg != null && msg.isText) {
testResults.add("server:" + msg.text)
ws.send("pong:" + msg.text)
}
msg = ws.receive()
if (msg != null && msg.isBinary) {
testResults.add("server_binary:" + msg.bytes.count.toString)
ws.sendBinary(msg.bytes)
}
ws.close()
}
server.close()
}
Timer.sleep(50)
Scheduler.add {
var ws = WebSocket.connect("ws://127.0.0.1:%(port)")
ws.send("ping")
var msg = ws.receive()
if (msg != null && msg.isText) {
testResults.add("client:" + msg.text)
}
ws.sendBinary([1, 2, 3, 4, 5])
msg = ws.receive()
if (msg != null && msg.isBinary) {
testResults.add("client_binary:" + msg.bytes.count.toString)
}
ws.close()
}
Timer.sleep(200)
for (r in testResults) {
System.print(r)
}
// expect: server:ping
// expect: client:pong:ping
// expect: server_binary:5
// expect: client_binary:5