2010-11-20 14 views
6

È possibile creare un server Web micro (proof of concept) in Javascript?server web Javascript?

Qualcuno l'ha già fatto prima ?.


EDIT: è necessaria chiarimenti Apparentemente esplicita qui. La domanda è in definitiva su come spingere i dati dal server al browser dopo che la richiesta iniziale fatta dal browser è stata chiusa. In altre parole, come fare in modo che il browser accetti le richieste successive avviate da un server.

Un server web basato su javascript deve essere installato nel browser oppure esiste un altro metodo?

+2

per chiarire, la ragione della mia domanda è quello di essere in grado di attuare una sorta di '' meccanismo di callback poveri su HTTP. In altri termini , Voglio essere in grado di eseguire il webserver nel browser client, in modo che un server remoto possa inviare dati al (server incorporato nel) browser del client. Suona confuso, ma hopefull y, ottieni il mio punto .. – skyeagle

+0

Forse dovresti usare google per "socket web", ma non penso che sarai in grado di implementare un'architettura come quello che descrivi. – Pointy

+2

Node.js viene eseguito sul server (come suggerisce il nome _web-server_). – jwueller

risposta

3

Se stai dicendo che si vuole essere in grado di spingere i dati per i browser che hanno avviato il contatto con il server, mi piacerebbe fare qualche ricerca su Comet server.

Non ne so nulla, quindi ti passerò un paio di link che spero ti indirizzino nella giusta direzione.

From Wikipedia Comet_(programming)

Comet è un modello di applicazione web in cui una richiesta HTTP di lunga data consente a un server web per spingere i dati a un browser, senza il browser richiedente esplicitamente. 1 Comet è un termine generico che comprende più tecniche per ottenere questa interazione. Tutti questi metodi si basano su funzionalità incluse di default nei browser, come JavaScript, piuttosto che sui plugin non predefiniti. L'approccio di Comet differisce dal modello originale del web, in cui un browser richiede una pagina Web completa alla volta. [3]

Ecco qualcosa chiamato APE. Non ne so nulla, ma potresti trovarlo utile.

From the APE site:

APE è una soluzione completa progettata per OpenSource Ajax Push. Include un server comet e un framework Javascript. APE consente di implementare qualsiasi tipo di streaming di dati in tempo reale su un browser web, senza dover installare nulla sul lato client.

+1

QUELLO di cui sto parlando !. Mi fa risparmiare dover reinventare la ruota – skyeagle

+1

forse la domanda è malamente fotogramma ma non capisco cosa c'entra questo con un server web JS ?? La risposta di Pointy è buona, però! – oberhamsi

+3

@oberhamsi: Quindi mi hai votato? Si scopre che questo era * esattamente * ciò che l'OP voleva. Prenditi il ​​tempo di leggere il commento sopra il tuo. È dall'OP che dichiara di aver risposto alla domanda. Il motivo per cui ho lasciato questa risposta è stato che ho fatto quello che ovviamente non hai avuto il tempo di fare. Ho letto il dialogo negli altri commenti e ho dedotto che questo era ciò che OP aveva bisogno, ma non sapevo come esprimerlo. Se fai lo stesso, vedrai che l'OP ha voluto * originare * richieste dal server al browser, il che ha senso solo se il browser ha fatto una richiesta iniziale. Beh, almeno hai commentato. – user113716

15

Controlla il progetto RingoJS o Node.js. La risposta è "sì", e non solo "micro" o "prova del concetto".

RingoJS

Node.js

express.js framework for node

+1

Vame attraverso nodeJS un paio di giorni fa. Non mi è chiaro se il codice scritto usando node.js può essere eseguito in un browser (che è quello che sto cercando di fare). Puoi confermare se un web server scritto usando node.js può essere eseguito in un normale browser? – skyeagle

+1

@skyeagle: cosa intendi con _ "esegui in un browser" _? – jwueller

+3

No, node.js è una tecnologia ** lato server **. È basato su Javascript, quindi ovviamente * alcuni * codici potrebbero essere comuni tra browser e server, ma non è possibile implementare realmente un server in un browser per molti motivi. – Pointy

1

C'è un componente aggiuntivo per Firefox (disponibile anche come applicazione desktop separata) chiamato Plain Old Webserver. Dovrebbe essere in grado di eseguire un tipo speciale di JavaScript lato server che ha accesso a tutte le funzionalità interne del browser Web, inclusi l'accesso al database locale e SQLite, l'accesso alle preferenze e alla cronologia del browser e qualsiasi altra cosa che può essere fatta con un componente aggiuntivo per Firefox.

0

JS HTTPD

http://acme.com/software/js_httpd/

è un piccolo server HTTP UNIX scritto in JavaScript.

Viene eseguito da inetd, il che significa che le sue prestazioni sono scadenti. Ma per i siti a basso traffico, è abbastanza adeguato. Implementa tutte le funzionalità di base di un server HTTP, tra cui:

  • Protezione contro ".." nomefile snooping.
  • I tipi MIME comuni.
  • Reindirizzamento barra-trailing.
  • index.html
  • Elenco delle directory.

js_httpd può anche essere utilizzato per servire HTTPS avvolgendolo con stunnel. Le istruzioni sono incluse

Altri piccoli e/o strane web server (tutti run da inetd):.

http://acme.com/software/js_httpd/

+0

Il titolo di questo Q & A dovrebbe essere cambiato per riflettere che i server web javascript non sono richiesti :) Avrei anche intenzione di informare su un server web javascript che può essere usato per i test delle unità o cosa no: https: //developer.mozilla .org/it-IT/docs/Httpd.js/HTTP_server_for_unit_tests – Motin

0

Si potrebbe provare a "ewsjs è un server Web incorporato all'interno del tuo browser Nello sviluppo Ajax-based e singolo applicazioni di pagina, è spesso molto difficile testare queste applicazioni fino a quando un server Web non è a posto. (...)

EWS fornisce un server Web incorporato che guarda all'applicazione Ajax come se provenisse dal server È possibile inserire qualsiasi logica e testare completamente l'applicazione Ajax nel browser, senza runni ng un server.

EWS supporta diverse funzioni chiave: Registrazione di gestori per qualsiasi percorso, Registrazione di gestori per percorsi parametrizzati (come percorsi Sinatra), Registrazione di un gestore automatico (quando nessun altro gestore corrisponde), Riscrittura di un percorso in un altro (come in Apache o nginx), asincrono (esattamente mimando chiamate ajax veri)"

su https://github.com/deitch/ewsjs