socket.io Samouczek
Rozpoczęcie pracy z socket.io
Szukaj…
Uwagi
Socket.IO
to biblioteka javascript do aplikacji internetowych w realtime
. Umożliwia dwukierunkową komunikację w czasie rzeczywistym między klientami sieciowymi a serwerami. Składa się z dwóch części: biblioteki po stronie klienta działającej w przeglądarce oraz biblioteki po stronie serwera dla node.js
Oba komponenty mają prawie identyczny interfejs API. Podobnie jak node.js, jest on sterowany zdarzeniami.
Socket.IO
używa przede wszystkim protokołu websocket
z odpytywaniem jako opcji rezerwowej, zapewniając jednocześnie ten sam interfejs. Chociaż może być używany jako po prostu opakowanie dla webSocket
, zapewnia wiele innych funkcji, w tym rozgłaszanie do wielu gniazd, przechowywanie danych związanych z każdym klientem i asynchroniczne operacje we / wy.
Wersje
Wersja | Data wydania |
---|---|
1.4.8 | 23.06.2016 |
1.4.7 | 23.06.2016 |
1.4.6 | 2016-05-02 |
1.4.5 | 26.01.2016 |
1.4.4 | 10.01.2016 |
1.4.3 | 08.01.2016 |
1.4.2 | 07.01.2016 |
1.4.1 | 07.01.2016 |
1.4.0 | 28.11.2015 |
1.3.7 | 21.09.2015 |
1.3.6 | 2015-07-14 |
1.3.5 | 2015-03-03 |
1.3.4 | 14.02.2015 |
1.3.3 | 2015-02-03 |
1.3.2 | 19.01.2015 |
1.3.1 | 19.01.2015 |
1.3.0 | 19.01.2015 |
1.2.1 | 21.11.2014 |
1.2.0 | 27.10.2014 |
1.1.0 | 2014-09-04 |
1.0.6 | 19.06.2014 |
1.0.5 | 16.06.2014 |
1.0.4 | 02.06.2014 |
1.0.3 | 2014-05-31 |
1.0.2 | 2014-05-28 |
1.0.1 | 2014-05-28 |
1.0.0 | 2014-05-28 |
Instalacja lub konfiguracja
Najpierw należy zainstalować socket.io
moduł w node.js
aplikacji.
npm install socket.io --save
Podstawowa konfiguracja HTTP
Poniższy przykład dołącza socket.io
do zwykłego serwera HTTP node.js
nasłuchującego na porcie 3000.
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket){
console.log('user connected with socketId '+socket.id);
socket.on('event', function(data){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
server.listen(3000);
Skonfiguruj za pomocą Express
Aplikację Express można przekazać na serwer http
, który zostanie podłączony do socket.io
.
var app = require('express')(); //express app
var server = require('http').createServer(app); //passed to http server
var io = require('socket.io')(server); //http server passed to socket.io
io.on('connection', function(){
console.log('user connected with socketId '+socket.id);
socket.on('event', function(data){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
server.listen(3000);
Konfiguracja po stronie klienta
Sprawdź powyższy przykład Hello World pod kątem implementacji po stronie klienta.
"Witaj świecie!" z komunikatami gniazd.
Zainstaluj moduły węzłów
npm install express
npm install socket.io
Serwer Node.js
const express = require('express');
const app = express();
const server = app.listen(3000,console.log("Socket.io Hello Wolrd server started!"));
const io = require('socket.io')(server);
io.on('connection', (socket) => {
//console.log("Client connected!");
socket.on('message-from-client-to-server', (msg) => {
console.log(msg);
})
socket.emit('message-from-server-to-client', 'Hello World!');
});
Klient przeglądarki
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World with Socket.io</title>
</head>
<body>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
var socket = io("http://localhost:3000");
socket.on("message-from-server-to-client", function(msg) {
document.getElementById('message').innerHTML = msg;
});
socket.emit('message-from-client-to-server', 'Hello World!');
</script>
<p>Socker.io Hello World client started!</p>
<p id="message"></p>
</body>
</html>
W powyższym przykładzie ścieżka do biblioteki socket.io jest zdefiniowana jako /socket.io/socket.io.js
.
Mimo że nie napisaliśmy żadnego kodu do obsługi biblioteki socket.io, Socket.io robi to automatycznie.