9

バックエンドサーバーとして機能するレールを備えたiPhoneアプリがあります。

次に、ソケット接続を使用してチャット機能を実装する必要があります。

多くの例は、ブラウザでソケットを使用してチャットを実装する方法を示しています。

ここで必要なのは、レールアプリでソケットサーバーを作成するアプリケーションと、私が与えたチャネルをリッスンするクライアントをiPhoneアプリで実装する方法です。

faye(ブラウザでクライアントを実装する方法のみを示す例)を使用し、iphone用のfayeObjCライブラリを使用してクライアントを作成しようとしましたが、このライブラリからチャネルを聞くことができません.ここで間違って実装しているに違いない.

ここでもコードを共有しますが、最初にこれよりも優れた解決策があることを知る必要がありますか?

また、ソケットサーバーがレールにあり、クライアントがiPhoneアプリであるいくつかの例へのリンクを感謝します。

助けに感謝し、それを実装するには正しい方向性が必要です。


アップデート

faye の組み合わせをもう一度試してみたところ、うまくいきましたが、まだ解決策を探しています。

4

2 に答える 2

8

TCP ソケットについて確認できます。

次のリンクは包括的なネットワーク ガイドです -インターネット ソケットの使用

ピア ツー ピア通信 (チャット) の 2 つの主要な問題に注意する必要があります。それは、到達可能性と、アプリケーションがバックグラウンドで動作しているときに新しいメッセージを受信する方法 (通知の取得) です。最後に、APNS アプローチを使用できます。非表示の通知が iPhone にプッシュされ、新しいメッセージを読む準備ができたことを示します。したがって、アプリは未読メッセージを要求します (WhatsApp のようなアプリが行うこと)。

TCP ソケットのほかに、 websocket (HTTP - ファイアウォールの問題はありません)を使用できます。クラス最高 - Socket.IO。ここに wiki https://github.com/learnboost/socket.io/wikiがあります(Ruby の拡張機能もあります) 。

これは、socket.io および node.js バックエンドの iOS チャット クライアントの例です。

ジャバー

別のオプション: XMPP - 「eXtensible Messaging and Presence Protocol の略です。このようなプロトコルはオープン スタンダードであり、メッセージ交換向けです (Jabber コミュニティによって構築および維持されます)。メッセージ交換はほぼリアルタイムで行われるため、構築するのに理想的なインフラストラクチャです。チャットのようなアプリケーション. プロトコルには、プレゼンス情報 (ユーザーがオンラインかどうか) を通知するメカニズムと、連絡先リストのメンテナンスも実装されています. XMPP は完全なプロトコルであり、Google などの大企業も構築に採用しています.インスタント メッセージング サービスです。」

ここでは、iOS 用の Jabber クライアントの開発に関するすべてを説明します (ユーザーがサインインし、仲間を追加し、メッセージを送信できるようにする方法、Jabber サーバーをインストールして構成する方法、アカウントを作成する方法、および iOS アプリケーションからサーバーと対話する方法http:/ /mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/

于 2013-02-09T00:46:17.107 に答える
0

SocketRocketbysquareが強力なネイティブObjective-Cライブラリであることを私は知っています。しかし、それはあなたが探しているように見えるチャネルの抽象化を提供しません。

WebSocket接続のアウトソーシングを検討する場合は、私が働いているPusherのようなホスト型サービスを使用できます。pusher-gemを使用して、チャネルでメッセージ(トリガーイベント)を公開できます。また、 PusherのObjective-Cライブラリの1つを使用して、チャネルをサブスクライブし、メッセージを受信できます。

他のソリューションにもObjective-Cライブラリがあり、このリアルタイムWeb技術ガイドでそれらのリストを見つけることができます。

于 2013-02-02T23:26:01.303 に答える