|
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
|