2013-07-07 14 views
17

Dies ist kompliziert, und nicht unbedingt eine Frage. Ich würde jede mögliche Hilfe schätzen.Websocket Komplikationen

Ich habe gelesen, dass es möglich ist, Websockets ohne Serverzugriff zu haben, aber ich kann keine Beispiele finden, die zeigen, wie es ist. Ich habe zu diesem Schluss kommen (das glaube ich diese benötigen) basiert auf den folgenden zwei Dinge:

  1. Ich habe in den letzten paar Stunden zu kämpfen versuchen, herauszufinden, wie man sogar WebSockets an die Arbeit mit dem WAMP-Server habe ich auf meinem Rechner, auf den ich root zugreifen kann. Installed Composer, kann aber nicht herausfinden, wie man die composer.phar Datei installiert, um die Ratsche zu installieren. Habe andere PHP-Websocket-Implementierungen ausprobiert (würde es in PHP bevorzugen), kann sie aber immer noch nicht zum Laufen bringen.

  2. Mein aktueller Webhost, den ich zum Testen verwende, ist ein kostenloser Host und erlaubt keinen SSH-Zugriff. Also, selbst wenn ich herausfinden könnte, dass Web-Sockets mit Root-Zugriff zu bekommen sind, ist es ein strittiger Punkt, wenn es um den Host geht.

Ich habe auch kostenlose VPS Gastgeber durch googeln (natürlich begrenzt alles), aber habe vollen Root-Zugriff, aber ich würde es vorziehen, zu halten etwas, das mehr Bandbreite erlaubt (meine freie Host ist derzeit unbegrenzt) gefunden . Und ich habe gelesen, dass Sie den Websocket-Server in einer anderen Subdomain als dem HTTP-Server hosten können (und sollten), und dass er sogar auf einer anderen Domäne ausgeführt werden kann.

Es könnte vielleicht auch billiger sein, meine eigene Seite zu hosten, natürlich habe ich keine wirkliche Ahnung davon, aber in diesem Fall müsste ich herausfinden, wie man sogar Websockets auf meinem Rechner laufen lässt.

Also, wenn jemand verstehen kann, was ich fragen, mehrere Fragen hier, ist es möglich, Websockets ohne Root-Zugang zu verwenden, und wenn ja, wie? Wie installiere ich richtig Ratchet-Websockets, wenn ich die composer.phar-Datei nicht finden kann (Ich habe composer.json mit dem Ratchet-Code darin aber nicht sicher, ob es im richtigen Verzeichnis ist), und diese Frage ist, wenn die erste Frage nicht ist wirklich möglich. Ist es dann möglich, einen Websocket-Server auf einem VPS zu haben und den HTTP-Server auf einer völlig anderen Domain zu haben, und wenn ja, gibt es irgendwo Dokumentation?

Ich meine, natürlich gibt es eine Möglichkeit, AJAX zu verwenden und den Browser zu zwingen, eine JS-Datei jede Zeit neu zu laden, die jQuery Ajax verwenden würde, um eine Reihe von divs zu aktualisieren, unabhängig davon, ob etwas geändert wurde das könnte kompliziert werden, und ich bin mir nicht einmal sicher, ob das möglich ist (ich sehe nicht, warum es nicht wäre), aber andererseits würde ich WebSockets bevorzugen, da ich höre, dass sie weniger Ressourcenhungrig sind als eine Art von diesem Absatz wäre.

+1

Soweit ich es verstehe, gibt es 2 Seiten zum websocket Bild. Server (PHP) und Client (Browser Javascript). Wenn Sie php auf Ihrem Server ausführen können, sollten Sie in der Lage sein, Ihren Server [ratchet] (http://socketo.me) verwenden zu lassen und einen Websocket-Dienst bereitzustellen, die Clientseite kann etwas wie socket.io verwenden – Loopo

+2

Verwenden Sie [heroku ] (http://heroku.com) für socket.io Es hat ziemlich tolle Befehlszeile, um fast das zu erreichen, was Sie brauchen, ich habe mein Socket-Projekt dort gehostet und es funktioniert wie ein Zauber, lassen Sie mich wissen, wenn heroku hilft. Versuche es! Es ist kostenlos und vielleicht können Sie sich auf sein CLI verlassen. –

+0

Könnte Ihnen etwas wie https://pusher.com/ helfen? – jornare

Antwort

-1

OK ... Sie haben ein paar Fragen, also werde ich versuchen, sie nacheinander zu beantworten.

1. Was

Sie verwenden Socket.IO könnte zu verwenden. Es ist eine Bibliothek zur Entwicklung von Echtzeit-Web-Anwendungen auf JavaScript-Basis. Es besteht aus 2 Teilen - Client-Seite (läuft auf dem Besucher-Browser) und Server-Seite. Grundlegende Verwendung erfordert fast kein Hintergrundwissen über Node.js. Here is an example Tutorial für eine einfache Chat-App auf der offiziellen Socket.IO-Website.

2. Hosting

Die meisten der Hosting-Provider Control Panel (cPanel) mit dem capebility/aktivieren verschiedene Apache-Plugins zu installieren und so weiter.Zuerst sollten Sie überprüfen, ob Node.js bereits verfügbar ist, andernfalls können Sie sich an den Support wenden und sie fragen, ob dies eine Option wäre.

Wenn Sie kein Glück mit Ihrem aktuellen Hosting-Anbieter haben, können Sie immer schnell wechseln, da es viele gute Angebote gibt. Google wird dir hier definitiv helfen. Here is a list enthält einige der (vielleicht) besten Optionen. Denken Sie daran, dass, obwohl einige Hosting-Angebote bezahlt werden können, gibt es viele kostengünstige Optionen zur Auswahl.

3. Bandbreite

Wie Sie sind besorgt über die „Ressource hungrig“ Code vielleicht können Sie versuchen, auf Amazon CloudFront einige Ihrer Inhalte Hosting. Es ist ein Content-Delivery-Netzwerk, das weit verbreitet ist und eine schnelle Verbindung und schnelles Laden von Ressourcen garantiert, da die Dateien vom nächstgelegenen Client-Server geladen werden. Der beste Teil ist, dass Sie nur für das bezahlen, was Sie tatsächlich verwenden, also wenn Sie nicht so viel Verkehr haben, wäre es wirklich billig zu laufen und immer noch zuverlässig!

this helps;)

6

Eine einfache PHP-Datei unter Vanille-LAMP läuft (das heißt mod_php unter Apache) nicht WebSocket Verbindungen verarbeiten. Es wäre nicht in der Lage, die Protokollaktualisierung durchzuführen, geschweige denn tatsächlich Echtzeitkommunikation durchzuführen, zumindest über Apache. Theoretisch könnten Sie eine sehr lange laufende Web-Anfrage an eine PHP-Datei haben, die einen TCP-Server für WebSocket-Anfragen ausführt, aber das ist unpraktisch und ich bezweifle, dass ein gemeinsam genutzter Host dies tatsächlich zulässt.

Es kann einige gemeinsam genutzte Hosts geben, die WebSocket-Hosting mit PHP ermöglichen, aber sie können dies nicht ohne SSH/Shell-Zugriff oder eine andere Möglichkeit, PHP außerhalb des Webservers auszuführen, bieten. Wenn sie Ihnen nur ein Verzeichnis geben, in das Sie PHP-Dateien hochladen und mit Apache bedienen können, haben Sie kein Glück.

Was Ihre Probleme mit Composer betrifft, weiß ich nicht, ob es möglich ist, composer.phar auf einem freigegebenen Host ohne irgendeine Art von Shell-Zugriff auszuführen. Einige Hosts (z. B. Heroku) haben spezielle Unterstützung für Composer.

In Bezug auf das Ausführen eines WebSocket-Servers in einer völlig anderen Domäne können Sie das tatsächlich tun. Zeigen Sie einfach auf JavaScript, um eine Verbindung zu dieser Domäne herzustellen, und stellen Sie sicher, dass der WebSocket-Server die erforderlichen Cross-Origin Resource Sharing-Header bereitstellt.