Meteor 3.5 consente agli sviluppatori di abbandonare SockJS a favore di uWebSockets.js tramite una singola variabile d'ambiente, promettendo costi di CPU, RAM e garbage collection sensibilmente inferiori per le applicazioni che fanno un uso intensivo delle chiamate ai metodi.

Perché il cambiamento è importante

Fin dal suo lancio, Meteor ha instradato ogni messaggio DDP (Distributed Data Protocol) attraverso SockJS, un fallback in JavaScript che funziona ovunque ma che non è mai stato progettato per la velocità pura. La nuova versione disaccoppia il livello di trasporto, esponendo un punto di innesto che accetta qualsiasi implementazione WebSocket conforme alle aspettative di DDP. Impostando DDP_TRANSPORT=uws all'avvio, il valore predefinito viene sostituito con uWebSockets.js, un server basato su C/C++ noto per l'elevato throughput.

Il lato delle prestazioni

I benchmark forniti con il rilascio mostrano:

  • Utilizzo della CPU ridotto del 9%
  • Consumo di RAM ridotto dell'11%
  • Tempo di pausa della garbage collection ridotto del 26%
  • Throughput aumentato di 1,6× nei micro-benchmark

Questi miglioramenti si riscontrano quando un'applicazione effettua molte chiamate ai metodi in stile RPC. Il trasporto stesso diventa un collo di bottiglia solo dopo che la logica di business dell'applicazione è stata ottimizzata, quindi il passaggio può tradursi direttamente in costi del server inferiori.

Come provarlo oggi

Non è richiesto alcun binario separato: basta Meteor 3.5. Avvia l