Versiyon 4.7.0
22 Haziran 2023
Sunucu
Hata Düzeltmeleri
Özellikler
WebTransport Desteği
Socket.IO sunucusu artık temel taşımacılık olarak WebTransport'ı kullanabilir.
WebTransport, HTTP/3 protokolünü iki yönlü bir taşımacılık olarak kullanan bir web API'sidir ve bir web istemcisi ile bir HTTP/3 sunucusu arasında iki yönlü iletişim için tasarlanmıştır.
Referanslar:
- https://w3c.github.io/webtransport/
- https://developer.mozilla.org/en-US/docs/Web/API/WebTransport
- https://developer.chrome.com/articles/webtransport/
WebTransport desteği Node.js için gelene kadar, @fails-components/webtransport
paketini kullanabilirsiniz:
import { readFileSync } from "fs";
import { createServer } from "https";
import { Server } from "socket.io";
import { Http3Server } from "@fails-components/webtransport";
// UYARI: geçerlilik süresinin toplam uzunluğu İKİ HAFTAYI GEÇMEMELİDİR (https://w3c.github.io/webtransport/#custom-certificate-requirements)
const cert = readFileSync("/path/to/my/cert.pem");
const key = readFileSync("/path/to/my/key.pem");
const httpsServer = createServer({
key,
cert
});
httpsServer.listen(3000);
const io = new Server(httpsServer, {
transports: ["polling", "websocket", "webtransport"] // WebTransport varsayılan olarak etkin değildir
});
const h3Server = new Http3Server({
port: 3000,
host: "0.0.0.0",
secret: "changeit",
cert,
privKey: key,
});
(async () => {
const stream = await h3Server.sessionStream("/engine.io/");
const sessionReader = stream.getReader();
while (true) {
const { done, value } = await sessionReader.read();
if (done) {
break;
}
io.engine.onWebTransportSession(value);
}
})();
h3Server.startServer();
123b68c tarihinde eklendi.
bilgi
WebTransport desteği, geliştiricilerin daha verimli iki yönlü iletişim kurmasını sağlar.
CORS başlıklı istemci paketleri
Artık paketler uygun Access-Control-Allow-xxx
başlıklarına sahip olacak.
63f181c tarihinde eklendi.
Bağımlılıklar
engine.io@~6.5.0
(diff)ws@~8.11.0
(değişiklik yok)