as-wake
Version:
WAKE bindings for AssemblyScript
43 lines (27 loc) • 902 B
text/typescript
// TODO: Fix the initWS error.
// JS Imports
declare function sendWS(id: i32, data: Uint8Array): void
declare function initWS(address: string): i32
declare function closeWS(id: i32, number: number): void
declare function sendPointer(id: number, event: string, pointer: i32): void
// API
export class WebSocket {
private id: i32 = 0
constructor(address: string) {
let id = initWS(address)
this.id = id
}
sendBinary(data: Uint8Array): void {
sendWS(this.id, data)
}
send(data: string): void {
sendWS(this.id, Uint8Array.wrap(String.UTF8.encode(data)))
}
close(number: number): void {
closeWS(this.id, number)
}
on(event: string, callback: (data: string) => void): void {
sendPointer(this.id, event, load<i32>(changetype<usize>(callback)))
// NOTE: Does not call every time! Only calls once.
}
}