2013-07-07 23 views
17

Questo è complicato e non necessariamente una domanda. Apprezzerei ogni possibile aiuto.Complicazioni Websocket

Ho letto che è possibile avere web socket senza accesso al server, ma non riesco a trovare alcun esempio che mostri come sia. Sono arrivato a quella conclusione (che credo ho bisogno di questo) sulla base dei seguenti due cose:

  1. ho lottato per il passato diverse ore cercando di capire come anche ottenere WebSockets a lavorare con il server WAMP che ho sulla mia macchina, che ho accesso root. Installato il compositore, ma non riesce a capire come installare il file composer.phar per installare il ratchet. Ho provato altre implementazioni di websocket PHP (preferirei che fosse in PHP), ma non riesco ancora a farle funzionare.

  2. Il mio attuale host web che sto usando per testare le cose è un host gratuito e non consente l'accesso SSH. Quindi, anche se potessi scoprire di ottenere web socket con accesso root, è un punto controverso quando si tratta dell'host.

Ho anche trovato libero host VPS googling (ovviamente, limitata tutto) ma ha accesso root completo, ma io preferirei mantenere qualcosa che consente una maggiore larghezza di banda (la mia host gratuito è attualmente illimitato) . E ho letto che puoi (e dovresti) ospitare il server websocket su un sottodominio diverso da quello del server HTTP e che può persino essere eseguito su un dominio diverso interamente.

Potrebbe anche essere più economico ospitare il mio sito, ovviamente non ha alcun indizio su questo, ma in tal caso avrei bisogno di capire come far funzionare anche le web socket sulla mia macchina.

Quindi, se qualcuno può capire quello che sto chiedendo, diverse domande qui, è possibile utilizzare websockets senza accesso root, e se sì, come? Come installo correttamente i websocket di ratchet quando non riesco a capire il file composer.phar (ho compositore.json con il codice del cricchetto ma non sono sicuro se è nella giusta directory), e questa domanda è se la prima domanda non è veramente possibile. È quindi possibile avere un server websocket su un VPS e avere il server HTTP su un dominio completamente diverso? In caso affermativo, c'è qualche documentazione in merito?

Voglio dire, ovviamente, c'è un'opzione di usare AJAX e forzare il browser a ricaricare un file JS ogni volta che usa jQuery ajax per aggiornare una serie di div indipendentemente dal fatto che qualcosa sia stato cambiato, ma potrebbe essere complicato, e non sono nemmeno sicuro che sia possibile (non vedo perché non lo sarebbe), ma di nuovo preferirei le web socket perché ho sentito dire che sono molto meno affamate di risorse di una sorta di questo paragrafo sarebbe.

+1

Per quanto ne so, ci sono 2 lati per l'immagine websocket. Server (php) e client (browser javascript). Se puoi eseguire php sul tuo server, dovresti essere in grado di usare il tuo server [ratchet] (http://socketo.me) e fornire un servizio websocket, il lato client può usare qualcosa come socket.io – Loopo

+2

Usa [heroku ] (http://heroku.com) per socket.io Ha una linea di comando molto bella per accedere quasi a ciò di cui hai bisogno, ho ospitato il mio progetto Socket e funziona come un incantesimo, fammi sapere se heroku ti aiuta. Provaci! È gratuito e forse puoi contare sulla sua CLI. –

+0

Potrebbe qualcosa come https://pusher.com/ aiutarti? – jornare

risposta

-1

OK ... hai qualche domanda, quindi proverò a rispondere uno per uno.

1. Cosa usare

Si potrebbe utilizzare Socket.IO. È una libreria per lo sviluppo di applicazioni web in tempo reale basate su JavaScript. Consiste di 2 parti: lato client (eseguito sul browser del visitatore) e lato server. L'utilizzo di base non richiede praticamente alcuna conoscenza di base su Node.js. Here is an example tutorial per una semplice app di chat sul sito ufficiale Socket.IO.

2. Hosting

La maggior parte dei fornitori di hosting hanno pannello di controllo (cPanel) con la capebility per installare/attivare diversi plugin Apache e così via.Per prima cosa dovresti controllare se Node.js non è già disponibile, altrimenti potresti contattare l'assistenza e chiedere loro se includere ciò sarebbe un'opzione.

Se non hai fortuna con il tuo attuale fornitore di hosting, puoi sempre cambiare host in quanto ci sono un sacco di buoni affari là fuori. Google ti aiuterà sicuramente qui. Here is a list contenente alcune delle (forse) migliori opzioni. Tieni presente che, sebbene alcune offerte di hosting possano essere pagate, ci sono molte opzioni a basso costo tra cui scegliere.

3. Larghezza di banda

Come siete preoccupati per "affamato di risorse" Codice forse si può provare che ospita alcuni dei tuoi contenuti su Amazon CloudFront. È una rete di distribuzione dei contenuti ampiamente utilizzata e garantisce una connessione rapida e un rapido caricamento delle risorse poiché i file vengono caricati dal più vicino al server client. La parte migliore è che paghi solo quello che usi effettivamente, quindi se non hai così tanto traffico sarebbe davvero economico da gestire e comunque affidabile!

Spero che questo aiuti;)

6

Un semplice file PHP in esecuzione sotto la lampada di vaniglia (vale a dire mod_php sotto Apache) non è in grado di gestire le connessioni websocket. Non sarebbe in grado di eseguire l'aggiornamento del protocollo, per non parlare della comunicazione in tempo reale, almeno tramite Apache. In teoria, potresti avere una richiesta web di lunga durata su un file PHP che esegue un server TCP per servire richieste WebSocket, ma questo non è pratico e dubito che un host condiviso consentirà effettivamente a PHP di farlo.

Ci possono essere alcuni host condivisi che rendono possibile l'hosting WebSocket con PHP, ma non possono offrire questo senza l'accesso SSH/shell, o qualche altro modo per eseguire PHP all'esterno del server web. Se ti stanno solo dando una directory per caricare file PHP e servendoli con Apache, sei sfortunato.

Per quanto riguarda il tuo problema con Composer, non so se è possibile eseguire composer.phar su un host condiviso senza alcun tipo di accesso alla shell. Alcuni host (ad esempio Heroku) hanno un supporto specifico per Composer.

Per quanto riguarda l'esecuzione di un server WebSocket su un dominio completamente diverso, è possibile farlo. Basta puntare il tuo JavaScript per collegarti a quel dominio e assicurarti che il server WebSocket fornisca le intestazioni Cross-Origin Resource Sharing necessarie.