2012-07-04 19 views
37

Con tutto il ronzio attorno a WebSockets, è piuttosto difficile trovare una buona panoramica su come utilizzarli con un server Apache su Google.Utilizzo di WebSocket sul server Apache

Stiamo sviluppando un plug-in, in PHP (symfony2), che eseguirà di volta in volta una sorta di istanza di chat. E troviamo WebSockets più interessante, standard e veloce di AJAX per questa materia. Il fatto è, non abbiamo le risorse sysadmin molto nel nostro gruppo e siamo fatica a raccogliere le buone informazioni sulle seguenti materie:

  • Possiamo eseguire un'istanza WebSocket su un tradizionale Apache, server dedicato, e se si, hai dei link utili per noi?
  • Se abbiamo bisogno di modificare il server, quale tipo di strumenti consiglieresti di non essere troppo abile in sysadmin, quindi non possiamo permetterci di avere un alto livello di manutenzione su questo.

La ringrazio molto,

ps: ci link al tuo blog/sito come faremo un post tecnico/informativo sulla nostra devblog di questa parte della nostra applicazione.

Grazie ancora!

+0

si può provare anche questo [ApacheWS] (http://www.apache-ws.tk) –

risposta

14

Un percorso consiste nell'utilizzare un server Web socket indipendente installato.

Per PHP si può provare: http://code.google.com/p/phpwebsocket/ o http://github.com/Devristo/phpws/

Ci sono alcuni altri progetti che si può provare pure.

Fondamentalmente, è necessario caricare, decomprimere e iniziare a eseguire il processo.

Sul frontend, avrete javascript che si collega al server sulla porta specifica.

La maggior parte dei server Websocket ha una demo che rispecchia ciò che sente, quindi questo è un buon posto per scrivere un codice di prova. Potresti persino trovare un'implementazione di chat rudimentale.

La parte difficile è monitorare il server socket Web e assicurarsi che funzioni senza intoppi e continuamente.

Provare a testare quanti più browser/dispositivi possibile in quanto questo deciderà su quale implementazione del server Websocket si sceglie. Ci sono vecchi e nuovi protocolli a cui devi fare attenzione.

+0

Grazie mille. Avete in mente qualche strumento di monitoraggio? Divertiti! –

+0

Abbiamo i nostri strumenti di monitoraggio del peso leggero. Per i principianti un semplice script cron che controlla quando il processo non è in esecuzione e lo riavvia. È possibile creare da questo o cercare app di monitoraggio del processo già pronte. – zaf

+0

Ok, sono sicuro che il nostro team di sviluppo sarà in grado di fare qualcosa! Grazie ancora! –

17

Poiché @zaf afferma che è più probabile trovare una soluzione PHP autonoma, non qualcosa che viene eseguito in Apache. Detto questo, c'è un apache WebSocket module.

Tuttavia, il problema fondamentale è che Apache non è stato creato tenendo a mente molte connessioni persistenti. Insieme a PHP, si basa sull'idea che le richieste vengono fatte e le risposte vengono rapidamente rispedite. Ciò significa che le risorse possono essere esaurite rapidamente se si tengono aperte le richieste e si avrà la necessità di esaminare il ridimensionamento orizzontale piuttosto rapidamente.

Personalmente penso che si hanno due opzioni:

  1. utilizzare una soluzione alternativa la tecnologia in tempo reale web e la comunicazione tra l'applicazione web e l'infrastruttura in tempo reale web utilizzando le code o richieste di breve durata (servizi web).
  2. Off carica la gestione delle connessioni persistenti e il ridimensionamento dell'infrastruttura web in tempo reale a un servizio di hosting in tempo reale. Lavoro per Pusher e rientriamo in questa categoria.

Per entrambe le opzioni self-hosted e hosted è possibile controllare il mio realtime web tech guide.

+0

Roba molto interessante :) grazie mille! Adoro la tua guida, anche se non aiuta molto a distinguere tra le soluzioni. Controlleremo la documentazione;) grazie ancora! –

+0

Ho bisogno di trovare il tempo per provare tutte le tecnologie e fornire una guida sui pro/contro delle diverse opzioni. Per ora è solo una lista di click-through - un punto di partenza per le tue indagini. – leggetter

+0

ed è già fantastico :) grazie per il lavoro! –

7

Ho introdotto un altro server websocket: PHP Ratchet (Github).

Questa è la lista migliore e completa dei codici lato server & e supporto browser.

Controllare questo link.

+0

Grazie, ma perché è meglio? – Ben

+0

Dal punto di vista del sottoinsieme FAST & EASY & React (http://reactphp.org). Ha buoni documenti e supporto. – ShahRokh

+2

possiamo dare un'occhiata a qualsiasi test? – Tebe

-2

Un altro percorso consiste nell'utilizzare un server Websocket dedicato.

Prova Achex Websocket Server a www.achex.ca e verifica le esercitazioni.

O

Se si vuole veramente Apache, prova anche Apache Camel. (Ma bisogna configurarlo e la sua un po 'più complicato di server di achex) http://camel.apache.org/websocket.html