2012-04-13 7 views
0

Ich habe in letzter Zeit versucht, die Channel-API der Google App Engine zu lernen.GAE Channel API-Nachricht an nur einen Client gesendet?

Ich habe versucht, eine einfache Chat-App zu machen, aber ich habe Probleme.

Dies ist im Allgemeinen, was ich getan habe.

Server öffnet einen statischen Kanal:

token = channel.create_channel('bigboys') 

Client js Verbindung mit dem Kanal:

var channel = new goog.appengine.Channel(token) 

Ich bin nicht Google App Engines Benutzer verwenden. Ich möchte nicht, dass sich Clients anmelden müssen.

Also mein Problem ist, die Chat-App funktioniert nicht wirklich, nur ein Client kann dem Kanal beitreten. Ich weiß, dass es eine Kanal-ID pro Kanalregel gibt. Wie unterstütze ich mehrere Clients in einem "Chat Room"?

Antwort

7

Stellen Sie sich einen Kanal vor, der die Verbindung zwischen einem Client (Browser) und Ihrem Server darstellt.

Wenn Sie einen Chatraum haben, benötigen Sie einen Kanal für jeden Client. Sie benötigen etwas auf der Server-Seite, um alle Clients im Chatraum und den Kanal für jeden Client im Auge zu behalten. Wenn Sie eine Nachricht senden, müssen Sie sie auf jedem Client-Kanal im Chatroom senden.

+0

OKAY. das macht mehr Sinn als das, was ich interpretiere – AlexCheuk

+0

Also, was ist der optimale Weg, um alle Clients zu verfolgen, die auf die "Sendung" hören? Würdest du sie in Memcache behalten? Datenspeicher? – Chuck

+2

Ich hätte eine Entität im Datenspeicher für die "Übertragung", die eine Liste aller Clients speichert. Würden Memcache verwenden, um Treffer auf den Datenspeicher zu reduzieren (NDB tut dies automatisch). – dragonx

Verwandte Themen