socket.me
Version:
Fast Strong-typed WebSockets
85 lines (63 loc) • 2.41 kB
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>