0

ユーザーが新しいメッセージの通知を表示する Web アプリケーションがあります。既にログインしているユーザーに通知をプッシュしたいと考えています。

PokeIn のサーバー プッシュを使用してそれを実行できることを確認しました。それを使用して簡単なアプリケーションを試して理解しましたが、ClientID を取得できません。

「OnClientConnected」に保存する ClientId は単純な整数なので、どのようにクライアントを認識して関数を呼び出すのでしょうか?

また、ハイブリッドロングポーリングアプローチを使用していると書かれていますが、誰か説明してもらえますか?

十分な知識がないと実装できません。

ログインしたユーザーのデータベースに ClientID を保存し、これを使用してデータをプッシュしても問題ありませんか?

アップデート:

同じブラウザー ウィンドウまたはタブ内の要求からでも、要求ごとに毎回受信する ClientId が異なるため、マスター ページにハンドラーを含める必要があり、すべての要求で、受信した ClientId をログイン ユーザーにマップする必要がありました。 、私が彼にメッセージを送ることができるように。

LogIn で (ClientId を LoggedIn UserId に) 1 回だけマッピングし、同じ ClientId を使用して彼にメッセージを送信することはできませんか?

4

2 に答える 2

6

ClientID は、アプリケーションの特定のクライアント ビューの識別キーを表し、毎回変更される可能性があります。特定のビューをキーで管理および対象化するのに役立ちます。一方、PokeIn クライアント ID で ASP.NET セッション ID を使用することもできます。唯一の違いは、ユーザーが同じブラウザーの異なるタブでアプリケーションを開いた場合、各タブに一意のクライアント ID が割り当てられることです。実際、これはあなたが必要とするかもしれない優れた機能です。一方、PokeIn は、クライアントが切断されたときにも通知します (ほぼ瞬時に)。

クライアント ID によってセッション ID に到達する場合があります。CometWorker.GetSessionId(string ClientId)

またはセッション ID のクライアント ID。CometWorker.GetClientIdsBySessionId(string sessionId)

さらに、(非常に便利な) クライアント ID システムを使用したくない場合は、「共同」オプションを選択できます。定義した名前でクライアントからメッセージを送受信するのに役立ちます。(ここに「ジョイント」機能のサンプルがあります)

PokeIn にはさまざまな接続オプションが用意されているため、PokeIn を使用する際にその背後にあるアプローチについて考える必要はありません。さまざまなソリューションからメリットを提供するだけです。詳細については、「FAQ」および「高度なチュートリアル」(http://www.pokein.com/Help/AdvancedTutorial.aspx)からアクセスできます。

最後に、PokeIn クライアント ID をデータベースに保存する必要はありません。PokeIn は、各クライアントごとにサーバー側のオブジェクトを効率的に管理します。サンプルとチュートリアルを確認することをお勧めします。

于 2011-03-23T19:01:06.677 に答える
0

更新の答えとして、クライアントの共有サーバー側インスタンスまたはクライアントの一貫した名前付けが必要な場合は、PokeIn のジョイント機能を自由に使用できます。

于 2011-04-24T03:03:51.707 に答える