La risposta è praticamente no ... beh, è solo no, a dire il vero.
@drudru ha indicato la tecnologia giusta per il flash p2p, ad esempio lo stratus.
Flash p2p è basato su RTMFP, che è basato su UDP. In realtà, il flash associa una porta, ma questo proviene dall'interno. Non ci sono API per farlo manualmente.
RTMFP permette fondamentalmente due cose:
- UDP Streaming (inaffidabile, ma veloce) per video e audio. Dal lato flash è possibile pubblicare solo la videocamera e il flusso del microfono. Dal server, quasi tutto.
- Esecuzione di chiamate remote verso l'altro endpoint della connessione p2p. Questo può essere usato per trasferire dati. Questa comunicazione è protetta, ovvero l'ordine e l'integrità del pacco sono mantenuti dal flash player.
Il p2p è basato su punchthrough NAT. Stratus stesso è il server di introduzione. Inoltre, per motivi di sicurezza, una connessione p2p significa anche che entrambi i client devono avere una connessione TCP inattiva (se ricordo male) al server. Immagino che, naturalmente, venga trasmesso un po 'di dati, ma non il carico utile.
Tuttavia, il protocollo torrent è molto diverso da questo. Pertanto, questa non è un'opzione. È possibile creare un protocollo equivalente su RTMFP, eseguire il reverseinging del servizio stratus (o attendere fino a quando non viene aperto). Naturalmente questo potrebbe anche essere usato dai client non flash. Ma ancora una volta, non si è in grado di guardare i dati trasmessi come video, poiché si otterrà come parametro per alcune chiamate al client del proprio NetStream
, probabilmente un ByteArray
. E non è possibile riprodurre ByteArray
s. Potresti scrivere client non flash, che pubblicano video come stream, ma sarebbe lontano da quello che volevi, immagino.
Se vuoi davvero fare qualcosa del genere, hai bisogno di Java. È possibile firmare le applet Java e, se l'utente accetta il certificato, ha accesso praticamente illimitato, ad es. potresti legare le porte. Dato che Java può fare UDP, potresti avere un'applet Java, che fa il torrenting (forse usa solo la base di codici di Vuze) e se vuoi davvero visualizzarlo in flash (che a sua volta richiede flv), allora potresti mimare un locale " Flash Media Server "e pubblica il video su localhost: someport. Ma in realtà, il flash bit sembra ridicolmente complicato e inutile per me. Piuttosto, prova a riprodurre con Java, che si spera abbia un'opzione per farlo in modo nativo.
Grazie, risposta quasi completa. – snitko
Sembra molto simile a ciò che ninjavideo fa con il loro helper ninjavideo, eccetto che si connettono a localhost usando il web player divx non flash. – Enriquev