UNPKG

socket.me

Version:

Fast Strong-typed WebSockets

85 lines (63 loc) 2.41 kB
<!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="utf-8"> </head> <body></body> <script src="http://localhost:3500/socket.me"></script> <script> const s = mio('localhost:3500'); //---]> s.on('createRoom', (data) => { console.log('[srv.back] createRoom', data); }); //---]> s.onConnect(() => { console.log("[open] Соединение установлено"); //---]> s.setResponseTimeout(3500); // для всех личных ответов установим по умолчанию таймаут s.emit('notFoundEvent', 404, (r) => console.log('notFoundEvent (3500):', r)); s.emit('notFoundEvent', 404, (r) => console.log('notFoundEvent (2000):', r), 2000); //---]> setTimeout(() => { const buffer = s.emit('createRoom', 200); console.log('[arrayBuffer]', buffer); }, 1000); setTimeout(() => { s.emit('message', 200, (r) => console.log('Личный ответ:', r)); s.emit('message', 200, (r) => console.log('Личный ответ:', r)); }, 2000); //---]> s.emit('error', 200, (r) => console.log('Личный ответ:', r)); //---]> // stress test: ack for(let i = 0; i < 240; i++) { s.emit('message', 0, (r) => {}); } setTimeout(() => { for(let i = 0; i < 240; i++) { s.emit('message', 0, (r) => {}); } }, 2000); //---]> // broadcast test setTimeout(() => { s.emit('broadcast', 'echo!'); }, 2500); }); s.onData((data) => { console.log(`[message] Данные получены: ${data}`); }); s.onClose((wasClean, code, reason) => { if(wasClean) { console.log(`[close] Соединение закрыто чисто, код=${code} причина=${reason}`); } else { // например, сервер убил процесс или сеть недоступна // обычно в этом случае code 1006 console.log('[close] Соединение прервано'); } }); </script> </html>