(socket_id, addr)
| 77 | var ply_net_sockets = {}; |
| 78 | |
| 79 | function ply_net_ws_connect(socket_id, addr) { |
| 80 | var addr_string = consume_js_object(addr); |
| 81 | var recv_buffer = []; |
| 82 | |
| 83 | var ws = new WebSocket(addr_string); |
| 84 | ws.binaryType = 'arraybuffer'; |
| 85 | |
| 86 | ws.onopen = function () { |
| 87 | recv_buffer.push({ "type": PLY_WS_CONNECTED }); |
| 88 | }; |
| 89 | |
| 90 | ws.onmessage = function (msg) { |
| 91 | if (typeof msg.data === "string") { |
| 92 | recv_buffer.push({ "type": PLY_WS_TEXT, "data": msg.data }); |
| 93 | } else { |
| 94 | recv_buffer.push({ "type": PLY_WS_BINARY, "data": new Uint8Array(msg.data) }); |
| 95 | } |
| 96 | }; |
| 97 | |
| 98 | ws.onerror = function (error) { |
| 99 | recv_buffer.push({ |
| 100 | "type": PLY_WS_ERROR, |
| 101 | "data": JSON.stringify(error.message || "WebSocket error") |
| 102 | }); |
| 103 | }; |
| 104 | |
| 105 | ws.onclose = function () { |
| 106 | recv_buffer.push({ "type": PLY_WS_CLOSED }); |
| 107 | }; |
| 108 | |
| 109 | ply_net_sockets[socket_id] = { |
| 110 | ws: ws, |
| 111 | recv_buffer: recv_buffer |
| 112 | }; |
| 113 | } |
| 114 | |
| 115 | function ply_net_ws_send_binary(socket_id, data) { |
| 116 | var entry = ply_net_sockets[socket_id]; |
no test coverage detected