2012-01-11 1 views
4

現在、iPhone用のチャットクライアントを開発中です。 サーバー側Socket.IOクライアント (https://github.com/DanLite/socket.IO-objciPhoneのバッテリーが開いているTCP接続で影響を受け、データの送受信をしませんか?

Socket.IOを持つとiPhone上のNode.jsは私の質問はあります: iPhoneのバッテリーがオープンTCP接続で影響を受けると、送信またはではないだろう3-4分のデータを受信して​​いますか?

バッテリーの寿命はどのように改善されますか?一定のtcp接続またはHTTP要求の多重化。

おかげ

編集: 私は

編集2(友人のステータス、編集の設定を確認し、名前の変更)などのチャット+他の機能があります。 は、TCP接続でそれをやってのWhatsAppのように見えるが

答えて

4

TCP接続を開くと、双方の関係者が情報を取得します(remote ip:port、local ip:port)。その情報はメモリ内の単なるデータ構造です。 RSTパケットが受信されていないか、またはタイムアウトが発生している限り、接続は開かれたとみなされます。

接続してデータを送信するとCPUが消費され、その下にあるワイヤレスモバイルネットワークモジュールが信号を送信してバッテリを消費するようになります。

これは、可能な限り長い時間TCP接続を維持し、チャット通信(いくつかのアプリケーションメッセージを組み合わせる)でバッチ処理する方が望ましい理由です。

一方、ネットワークカバレッジが悪いときには、常にTCP接続を再開してバッテリを消費しなければならない状況に備えておく必要があります。

+0

ネットワークトラフィックにラジオが必要であることを忘れていませんか?その無線機はネットワークパケットを受信するために電源を入れる必要がありますが、接続がない場合は電源を切ることができます。 – skue

+0

理論的には、無線が大きな電力を消費する唯一の時間は送信時です。 – hyperspasm

関連する問題