4

iOS アプリ (ソーシャル ネットワーキング アプリ) があり、メッセージングおよびチャット システムを追加したいと考えています。私はこれを行う方法を調べましたが、ほとんどが私が望むものには複雑すぎるため、完全に理解または実装できる方法を見つけられませんでした.

私は「友達リスト」ビューコントローラーを持っており、リスト内の名前の1つに触れると、「メッセージ」ビューコントローラー(他のimウィンドウと同じように)が表示され、選択した友達とチャットできます。

これを行う方法は、XMPP または「TCP 接続」のいずれかでした。私はXMPPを理解しようとしましたが、XMPPの場合は「ログイン」などが必要であり、それには追加のIDまたは物事を複雑にする何かが必要です。アプリ内ユーザー ID を既に持っています。チャット用に 2 つ目の ID は必要ありません。

2 番目の方法 (TCP 接続を作成し、その接続を介してメッセージを送信する方法) は、完全には理解できませんでしたし、実装されている例も見つかりませんでした。

4

2 に答える 2

2

単純なチャット プロトコルの最も難しい部分は、メッセージを受信したことをクライアントにすばやく通知する方法です。たとえば、REST や HTTP でこれを行うには、クライアントが数秒ごとにサーバーをポーリングする必要があります。これは、アプリをスケーリングする必要がある場合、非効率的で実用的ではありません。

XMPP は確かに余分な作業を追加します。クライアントは XMPP サーバーに個別に接続する必要があり、認証を統合する方法を見つける必要があります。ただし、クライアントが接続を開いている限り、メッセージが到着した瞬間に通知されます。

チャットはパブリッシュ/サブスクライブと同じではありませんが、クライアントがポーリングしなくてもメッセージを受信したときにクライアントに通知する方法という、同じ設計上の課題を共有しています。パブリッシュ/サブスクライブ アプリケーションの選択肢を調査しているときに、XMPP、RSS、およびその他のオプションを比較する便利なチャートを見つけました。同じサイトで、ポーリングについて適切に説明されています。繰り返しますが、これはチャットに関するものではありませんが、チャットを使用して問題を理解することはできます。

あなたが言及したように、別のオプションは、サーバーが到着時に応答を配置できる、生きたままのTCP接続です。必要に応じて、HTTP 経由で行うこともできます。箱から出してすぐにこれを行うサーバーは知りません。(私のニーズに合わせて、 XMPP とXMPPFrameworkを選択しました。)

于 2013-02-18T15:28:45.103 に答える
0

XAMPPフレームワークが使用されているこのリンクを確認できます...

https://github.com/KanybekMomukeyev/FacebookChat

于 2015-01-14T06:39:06.773 に答える