Google Hangout Desktop-Anwendungsfluss

8

Ich erstelle eine Screensharing-Anwendung, die ähnlich funktioniert wie Google Hangout Screen Shares, und ich würde gerne wissen, wie das Google Talk-Plugin (für Screen Shares) untergeordnete Prozesse erzeugt und einen dynamischen Portbereich verwendet.

Ich erstelle eine im Hintergrund laufende Anwendung, die der Benutzer installieren muss und die mit dem Browser wie folgt kommuniziert, Ссылка

Aber wenn ich mir googleTalkPlugin anschaue, das für die gemeinsame Nutzung von Google Hangouts zuständig ist, habe ich gesehen, dass viele Prozesse laufen, und wenn ich einen neuen Browser öffne, wird ein neues Talk-Plugin für diesen Browser als Child Service gestartet .

Hier sind einige Schnappschüsse

und als ich den von googleTalkPlugin verwendeten Port bemerkt habe, habe ich seine Dynamik kennengelernt! Wenn Sie den obigen Link gesehen haben, befindet sich die Browser Desktop-Kommunikation auf dem statischen Port.

Ich bin sehr interessiert zu wissen, wie verwende ich dynamische Portnummern? Soll ich für jeden Browser einen untergeordneten Prozess erstellen? Oder etwas Besseres?

    
Hitesh Joshi 01.05.2013, 12:38
quelle

1 Antwort

2

Der Grund dafür, dass für jeden Browser ein eigener untergeordneter Prozess besteht, ist, dass die Google Talk-Anwendung als Browser-Plugin implementiert ist. Jeder Browser hat ein Google Talk-Plugin installiert und kennt die anderen Browser, deren Plugins oder deren Unterprozesse nicht. Jeder Browser startet die Plugins, die er installiert hat und, wie Eduard in den Kommentaren erwähnt, einige Plugins werden in einem separaten Prozess gestartet . Dies ist kein besonderes Verhalten von Google Talk. Es ist ein Verhalten, das Sie bei den meisten Plugins sehen. Wenn Sie Ihre Anwendung als ein Browser-Plugin implementieren, haben Sie das gleiche Verhalten. Wenn Sie nicht möchten, dass Ihre Anwendung als Unterprozess eines Browsers ausgeführt wird, müssen Sie sie als eigenständige Anwendung und nicht als Browser-Plugin schreiben.

Wenn Sie mehr über das Erstellen von Teilprozessen erfahren möchten, lesen Sie weiter auf Gabel () . Es gibt viele andere gute Ressourcen rund um das Internet auf Unterprozessen .

Ihre andere Frage betrifft dynamische Portnummern. Der einfachste Weg, dies zu tun, ist an Port 0 zu binden, und Sie erhalten vom Betriebssystem einen zufälligen offenen Port zugewiesen. Sie können dann getsockname () finden aus welchem ​​Port du gekommen bist. Wenn Sie mit einer Client / Server-Situation arbeiten, können Sie dies dem Client überlassen und dann dem Server mitteilen, welchen Port er verwendet.

    
seanmk 02.08.2013, 19:25
quelle