java - インスタント メッセージング システムとプッシュ通知システムはどのように実装されていますか?
PHP中文网
PHP中文网 2017-06-12 09:27:28
0
6
914

サーバー経由で指定された相手にメッセージを転送する方法

都合がよければ、典型的なコードを投稿してください

また、セッションの保存時にどのような情報が保存されますか?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(6)
黄舟

私の理解:
クライアントは、間隔 (1 秒など) ごとにサーバーにリクエストを作成します (リクエストを送信します)。
サーバー側にメッセージがある場合、サーバー側に新しいメッセージがあることをクライアントに通知するために、その情報が応答(レスポンス)にマークされます。
クライアントはメッセージをプルするリクエストをサーバーに送信し、サーバーが応答します。

リクエスト: 新しいニュースはありますか?受信されましたらご返信ください。
回答:いいえ。
リクエスト: 新しいニュースはありますか?受信されましたらご返信ください。
回答:いいえ。
リクエスト: 新しいニュースはありますか?受信されましたらご返信ください。
応答: はい、メッセージ ID は 123456 です。
リクエスト: メッセージ ID 123456 のメッセージ内容を送信してください。
応答: メッセージ ID: 123456、メッセージ テキスト: 驚きました!この女性は実際に13億人の前であんなことをしたのです…。

いいねを押す +0
迷茫

メッセージ送信は、サーバーがクライアントに直接送信するのではなく、クライアントをサーバーに更新することによって取得されます

以前は、確かにサーバーがローカルで直接ポートを開き、サーバーがクライアントに直接リクエストするケースもありましたが、現在ではメッセージプッシュ(通常はLAN内でのファイルや情報の転送に使用されます)に使用することはほとんどありません

セッションはサーバーに保存され、セッションの名前とIDはCookieを介してローカルに保存されます。サーバーはこれら2つを使用してサーバー側に保存されているコンテンツを取得します。

いいねを押す +0
滿天的星座

現在、一般的な解決策が 2 つあります。
1. クライアントはアクティブにポーリングします (つまり、N 回ごとにサーバーにニュースがあるかどうかを尋ねます)。
2. サーバーはアクティブにプッシュします。ソケットはバックエンド サービス間で使用され、WebSocket はバックエンド サービスとの通信に使用できます。フロントエンド

いいねを押す +0
女神的闺蜜爱上我

http2.0は非常にうまく処理できるので、試してみてください〜

いいねを押す +0
曾经蜡笔没有小新

それはインスタントであると言われており、長い接続を確立する必要があります。ソケットなど。

いいねを押す +0
给我你的怀抱

それが製品の多くの機能の 1 つにすぎない場合、インスタント メッセージングは​​対象者に IM に接続することを推奨します。これにより、開発費を大幅に節約できます。既存の IM プロバイダーが提供する機能は比較的包括的であり、それよりはるかに優れています。自分で開発するよりも費用対効果が高くなります。環境情報 http://www.easemob.com/

をご覧ください。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート