Websockets ohne socket.io

  • Websockets ohne socket.io

    Hi.

    Ich möchte Websocket implementieren.
    Allerdings möchte ich möglichst weitgehend selbst die Kontrolle darüber haben, wie die Websocket Verbindung aufgebaut wird und was wann wie über die Websocket Verbindung gesendet wird.
    Ich möchte im Browser das Websockets Object direkt ohne zwischengeschaltete Instanz ansteuern und in Node.js auf möglichst kurzem Weg die Daten empfangen und verarbeiten.
    Fallback Menchanismen für ältere Browser sind nicht notwendig, so dass auch ältere Websocket Protokollversionen oder fehlende Unterstützung nicht berücksichtigt werden müssen.

    Es braucht auch keine Secure WS Unterstützung da meine node,js Installation als ganzes kein SSL unterstützen wird. Das mache ich mit einem vorgelagerten nginx Proxy.

    Insgesamt werden nur Textdaten in kleineren Mengen über Websocket übertragen. Der Rest läuft alles über XHR bzw HTTP.
    Sprich, über Websocket wird benachrichtigt: "Es gibt neues", und das Script zieht die Daten dann per XHR.

    wäre auf der Node.js Seite die Installation von "ws" ausreichend, um das Vorhaben zu realisieren?

    LG
  • Danke

    Socket.io wäre für mich ja eigentlich overkill da ich Websocket ja nur als Benachrichtugungskanal nutzen will.
    Und das mit möglichst wenig Gewicht und möglichst einfach.

    Ich habe ansonsten vor auf XHR für den eigentlichen Datentransfer zu setzen, damit ich die Daten auch direkt über den nginx ausliefern kann.

    Wenn jemand etwas postet, wird dies wie früher per HTTP Post gemacht. Die Message ID wird dann per Websocket verteilt und alle Clients können den Inhalt per XHR anfordern.
    Vor Allem bei Bilddateien lohnt sich das wahrscheinlich, es als direkt per http abrufbare Quelle abzulegen und direkt über den NGINX auszuliefern, statt es noch durch node.js und Websockets zu jagen.

    Eine weitere Verwendung von Websocket ist der Austausch von kleineren Textnachrichten (shoutbox) und User-Status Codes aller Teilnehmer.
    Die Profile ansich werden hingegen wieder per XHR abgerufen.


    Sollte websockets nicht möglich sein, wird einfach alle x Minuten das komplette Message-ID und Status Array als ganzes per HTTP herunter geladen und dann die Inhalte nachgeladen.