Socket.IO 1.0 kommt mit Unterstützung für Binärdaten

Die Entwickler der JavaScript-Bibliothek für Echtzeit-Webanwendungen arbeiteten für das Major Release nicht nur an einer besseren Struktur, sondern kümmerten sich auch um wichtige Belange wie Test- und Skalierbarkeit.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Rund vier Jahre nachdem seine Entwickler Version 0.1 der Öffentlichkeit zugänglich gemacht haben, steht mit Socket.IO 1.0 nun das erste Major Release des quelloffenen Realtime Application Framework für Node.js bereit. Der Wechsel auf die aktuelle Veröffentlichung sollte von Version 0.9 vergleichsweise einfach gelingen, allerdings gab es intern einige strukturelle Änderungen, weshalb es sich empfiehlt, die Migrationshinweise zu lesen.

Eine der auffälligsten Änderungen ist wohl ein neues Modul, das unter dem Namen Engine.IO eine WebSocket ähnliche API umsetzt. Dadurch ist Socket.IO nicht nur schlanker, es sollen sich auch alternative Transportarten einfacher implementieren lassen. Außerdem ermöglichte die Ausgliederung wohl eine Überarbeitung der Transportschicht. Nachdem wohl eine Vielzahl der Anwender Möglichkeiten zum Versenden binärer Daten vermissten, sind die Entwickler dem Wunsch in der aktuellen Version nachgekommen: Zum einen lassen sich in Engine.IO Binärobjekte in Form von Blobs senden und empfangen, zum anderen unterstützt Socket.IO die Weitergabe der Typen Buffer, Blob, ArrayBuffer und File als Teil von Datenstrukturen.

Um für bessere Skalierbarkeit zu sorgen, überarbeiteten die Entwickler die genutzten Ansätze, sodass nun, um weitere Knoten einzusetzen, Sticky Load Balancing zu aktivieren und der socket.io-redis-Adapter einzusetzen ist. Die APIs Socket#set und Socket#get wurden hingegen als veraltet (deprecated) markiert. Beiträge zur Socket.IO-Codebase, die durch Commits eingebracht werden, lösen nun eine Testmatrix mit 25 Browsern aus. Weitere Neuerungen, die unter anderem die Möglichkeit zur kostenlosen Nutzung eines hauseigenen Content Delivery Networks umfassen, lassen sich der Ankündigung entnehmen.

In Zukunft wollen die Entwickler ihre Aufmerksamkeit unter anderen der Zuverlässigkeit und Geschwindigkeit der Bibliothek widmen, außerdem soll der Umfang des Quelltextes schrumpfen. Deshalb ist schon jetzt damit zu rechnen, dass Socket.IO 2.0 keine Unterstützung für einige der älteren Browser bieten wird und ein paar Module nicht mehr als Teil des Standardpakets sondern nur noch einzeln vorkommen. Außerdem plane man, sich verstärkt auf Interoperabilität konzentrieren. (jul)