2013-02-01 8 views
9

私はバックエンドサーバーとしての役割を果たすiphoneアプリを持っています。レールとiphoneネイティブアプリのソケット接続

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

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

私がここで必要とするのは、レール・アプリケーションでソケット・サーバーを作成するアプリケーションを実装する方法と、それらを提供するチャネルをlistenするiphoneアプリケーションのクライアントです。

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

ここでも私のコードを共有しますが、まずこれより良い解決策があるかどうかを知る必要がありますか?

また、ソケットサーバーがレールにあり、クライアントがiphoneアプリケーションであるいくつかの例へのリンクをありがとうございます。

ほとんどのヘルプを評価し、それを実装するには正しい方向が必要です。


更新

私は再びフェイの組み合わせを試してみましたが、それはまだ多くの解決策を探していworked.Although。

+1

多分あなたを少し助けます... http://www.raywenderlich.com/3932/ iphone-app-and-serverを作成する方法とhttp://boddhisattvadedicates.blogspot.in/2011/08/chat-application-using-ruby.htmlまたはhttp:// quickbloxを参照してください。 com/modules/chat/ – TonyMkenu

+0

これらのリンクに感謝しています。いくつかの概念をはっきりと助けました。私はfayeの組み合わせを試しましたが、より多くのオプションを試してみたいと思います。 –

+0

よろしくお願いします – TonyMkenu

答えて

8

あなたはおよそTCPソケットチェックすることができます。

を到達可能性とどのようにアプリケーションがバックグラウンドで動作している間に新しいメッセージを受信する(: Using Internet Sockets

あなたはピアツーピア通信は(チャット)心の中で2つの大きな問題を維持する必要があります

-

次のリンクは、包括的なネットワークガイドです通知を受け取る)。 最後にAPNSアプローチを使用できます。新しいメッセージを読む準備ができていることを示す非表示の通知がiPhoneにプッシュされます。つまり、あなたのアプリは未読メッセージ(WhatsAppのようなアプリ)をリクエストします。

TCPソケットの他に、ウェブソケット(ファイアウォールの問題はありません)を使用できます。 クラス最高 - Socket.IO 「拡張可能の略 - XMPP:ここ あなたはが

別のオプションは、https://github.com/learnboost/socket.io/wikiiOS chat client for socket.io & node.js backend

ためここで

例(あなたがそこにもRuby用の拡張機能があります)ウィキJabberのを見つけるだろうメッセージ交換はリアルタイムで行われるため、チャットのようなアプリケーションを構築するのに理想的なインフラストラクチャです。また、このプロトコルでは、メッセージングやプレゼンスプロトコルを実装するための理想的なインフラストラクチャです。プレゼンス情報(ユーザがオンラインであるか否か)およびコンタクトリストのメンテナンスを通知するためのメカニズム。 XMPPは、徹底したプロトコルであり、インスタントメッセージングサービスを構築するためにGoogleなどの大企業にも採用されています。」

ここでは、iOS用のJabberクライアントの開発について説明します(ユーザーがログイン、メッセージを送信する方法、ジャバーサーバーをインストールして設定する方法、アカウントを作成する方法、iOSアプリケーションからサーバとやりとりする方法http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/

0

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

WebSocket接続をアウトソーシングすることを検討する場合は、私が働いているPusherのようなホスト型サービスを使用できます。 pusher-gemを使用して、チャンネルにメッセージ(トリガーイベント)を公開することができます。 Pusher's Objective-C librariesのいずれかを使用して、チャンネルを購読してメッセージを受信することもできます。

その他のソリューションにはObjective-Cライブラリもあり、そのリストはrealtime web tech guideで見つけることができます。

+0

実際にWebsocket接続をアウトソーシングするのではなく、自分で実装したいだけなので、カスタムメソッドを使ってメッセージを取得することができます。しかし、助けてくれてありがとう。 –