オンラインチャットの仕組みを教えてください

  • iPhone・iPadアプリ開発の相談
  • 解決済
  • 回答数:5
  • 閲覧数:4973
  • お気に入りの相談に追加
    ログインすると「お気に入りの相談」リストに追加できます。
    「お気に入りの相談」に回答やコメントがあると、お知らせ通知が届きます。

YouTeacher株式会社 (YouTeacher)

ログインすると、YouTeacher株式会社 (YouTeacher)さんに「ありがとう」を伝えられます。
iPhoneアプリの中で、チャット機能を搭載しようとしています。
UITableViewを使ってなんとなくチャット機能を実現しております。

ただ、投稿のタイミングやリフレッシュにより、データを更新しており、
リアルタイム性が実現できてないです。

どのようにすれば、相手が入力した内容を瞬時に受け取ることができるのでしょうか?

どうぞ宜しくお願い致します。
投稿日時:2015年11月12日 17:29:29

追記コメント:

****

みなさま

早速いろいろご回答頂きありがとうございました。
ご意見を参考に、Push通知を活用して、改善することになりました。

追記日時:2015年11月20日 07:22:42

回答者コメント

非同期通信方式をやめて、非現実的ですが同期通信で接続しっぱなしにするとか?


ログインすると、ソラ (solaris_kun)さんに「ありがとう」を伝えられます。
投稿日時:2015年11月12日 17:37:14

回答者コメント

そんなことしなくてもプッシュすれば良いのではないでしょうか。
ログインすると、web-web-pro (web-web-pro)さんに「ありがとう」を伝えられます。
投稿日時:2015年11月12日 17:46:19

YouTeacher株式会社 (YouTeacher)

ログインすると、YouTeacher株式会社 (YouTeacher)さんに「ありがとう」を伝えられます。

投稿者コメント

早速ご回答ありがとうございます。

同期通信にした場合、同時にオンラインの時と片方がオフラインの場合など、どのように設計したらよろしいでしょうか?

Push通知を活用した場合、Push通知が届いた瞬間にデータベースをReloadするということでしょうか?
Facebook Messengerでは、相手が入力中のこともわかるのですが、それはどのように技術でしょうか?

質問が多く申し訳ありません。宜しくお願いします。
投稿日時:2015年11月12日 20:03:14

回答者コメント

WebRTC関連を調べてみると良いですよ。
詳しく書いてますよ。
ログインすると、ソラ (solaris_kun)さんに「ありがとう」を伝えられます。
投稿日時:2015年11月13日 01:37:47

回答者コメント

※Androidの事例で申し訳ありません。
Push通知はIOSはわかりませんが、Androidでは非同期で受信できるAPIの仕組みがあります。
なので簡単に実装可能だと思います。
IOSも利用するpush通知サービス毎にAPIが存在するはずです。

端末のオフライン、オンラインですが、push通知設定で端末がオンライン=待ち状態からオンラインになったタイミングでpush通知を投げるはずですのであまり考慮しなくても問題ないと思います。

入力中の通知機能に関しては、わかりません。

ログインすると、退会中 (nagomi-creative)さんに「ありがとう」を伝えられます。
投稿日時:2015年11月14日 21:48:16

回答者コメント

よく読むと対象はiPhoneだけなんですねw

iOSでプッシュ通知機能を利用する場合、APNSを利用する事になります。
iOSの場合、256byteまで送る事ができたはず。
サウンドは18byte、バッジは11byteですね。

iOSはAPNSが独自のプロトコルでAPNSは1回の接続で複数のペイロードを送信することができるのですが、途中に不正なトークンなどが含まれるとそれ移行のペイロードが破棄されてしまいます。

AndroidのGCMはHTTPで通知が可能ですね。
ですからリクエストヘッダーにAPIキーを添え、リクエストボディにメッセージや送信先デバイスのトークンを送るだけなので、iOS系より容易に実装できると思います。

iPhoneだけならプッシュ通知機能で十分ですね。
ログインすると、ソラ (solaris_kun)さんに「ありがとう」を伝えられます。
投稿日時:2015年11月19日 03:28:54
会員登録する (無料)