Omówienie i demonstracja głównych koncepcji i możliwości API wersji 0.7 Socket.IO, biblioteki dostarczającej mechanizm komunikacyjny na wzór WebSockets i działającej w oparciu o node.js. Prezentacja wygłoszona na spotkaniu meet.js w Poznaniu.
protokołu TCP • załatano krytyczne luki w bezpieczeństwie • standaryzacja w trakcie, aktualnie draft 10 (IETF, W3C) nawiązanie połączenia następuje poprzez HTTP (handshake) i przełączenie na protokół WS (Connection: Upgrade)
socket.on('connect', function() { // po czenie z serwerem łą socket.send(msg); // wys anie wiadomo ci ł ś socket.on('message', function(data) { // odebranie wiadomo ci ś }); }); </script> </head>
jednego wewnętrznego protokołu dla rozróżnienia rodzaju i sposobu obsługi komunikatów musimy wprowadzać dodatkowe informacje sterujące multipleksacją wiadomości zajmuje się Socket.IO, serwer musi zaimplementować obsługę wielu kanałów a klient podłączyć się na dedykowane im adresy
io.connect('http://server:1337/news'); chat.on('connect', function() { // obs uga wiadomo ci z chatu ł ś }); news.on('connect', function() { // obs uga newsów ł });
od wysyłania kolejnych wiadomości w przypadku zbyt dużego obciążenia strony odbierającej jest to szczególnie ważne w przypadku stosowania bardziej zawodnych transportów (long polling)
od wysyłania kolejnych wiadomości w przypadku zbyt dużego obciążenia strony odbierającej jest to szczególnie ważne w przypadku stosowania bardziej zawodnych transportów (long polling) socket.volatile.emit('new tweet', tweet);
komunikacją typowym zastosowaniem mogą być pokoje w czacie io.sockets.on('connection', function(socket) { socket.join('js-news'); // do czenie łą // broadcast do wszystkich z mojej grupy socket.broadcast.to('js-news').send('witam!'); // do wszystkich z innej grupy io.sockets.in('ruby-news').emit(' egnam!' ż ); });