LINEの仕組み from did2memo.net

LINEの仕組みや使い方などについて詳しく解説します

iPhone 6s 機種変後「LINEの既読が付かない」問題の原因分析と対策

iPhone 6s (53) iPhone 6s Plus (50) LINE-iPhone (251) LINE-既読 (7)

iPhone 6s に機種変し、iTuensのバックアップから復元をしたところ、LINEのトーク履歴を含めた引き継ぎには成功したものの、「既読」が付かないことに気が付きました。これを分析した結果、この既読が付かない背景にあるLINEの仕組みや、この後発覚する、トークが届かない問題の原因についての手がかりが分かったので、その分析結果と対策について書いておきます。

問題:既読が付かない

機種変更後、引き継ぎを完了したLINEから、友だち*へトークを送ってみました(*友だち役の、自分の別回線iPhoneのこと)

すると、友だちのiPhone側に、確かに届いたのですが、こちら側に、既読が表示されませんでした

既読情報を届ける仕組み

既読の仕組みを考えると、トークを見た友だちのiPhoneから、「読んだ」という情報がLINEのサーバに送信され、サーバが送り主のiPhoneに、その情報を配信している、と考えられます。

そのとき、送信先のiPhoneが、機種変後のiPhoneなのか?ということにふと気が付きました。

機種変前の端末に届いていた!

そこで、機種変前のiPhone 5s(Wi-Fiにつながっている)を確認してみると、こちらにも送信メッセージがちゃんと表示されていることに加えて、こちらには「既読」が表示されていました

つまり、既読情報の配信先が、機種変前の古いiPhoneのままになっていたのです。

これが、機種変後のiPhoneに既読が付かない原因だったのです。

問題:メッセージが届かない

さらに、友だち側からのトークが、届いていない、ということにも気が付きました

これも、機種変前の古いiPhoneには届いていて、やはり、サーバ側の宛先端末が旧端末になっており、新しい端末に届いていなようなのです

仕様:LINEは複数端末からの同時ログイン不可

LINEは、複数端末からの同時ログインができません。

これにより、LINEの挙動がシンプルでより安定できるようになっていると思うのですが、バックアップから復元したときは、この同時ログイン不可の実装を突破して、複数端末からの同時ログインができてしまうのです。

そして、ログインできたこの状況であっても、あくまで実装上は、同時ログイン可能端末は1台のみであり、既読情報にしろ、トークのメッセージにしろ、送信先は1台だったというわけなのです。

すごく、スッキリできます。

対策を考える:届かないメッセージ・既読を呼び込むには

では、そのデフォルトの宛先を、機種変後のiPhone 6s側に設定するにはどうすればよいのか、うまくサーバ側にそのあたりを要求する操作はないものか、と考えました。

実は、実験をしていて、途中まで、宛先が新端末になっていたことに気が付きました

つまり、どこかで宛先が移動していたのです

対策:デフォルトの端末を切り替える

もしかして、起動時に、サーバ側にログインして、宛先を設定しているのでは?と考え、新しいiPhoneのホームボタンを2回押してLINEを強制終了して、再起動してみました

結果

すると、来ていなかった既読が来たり、届いていなかったメッセージが届いたりと、今まで届かなかった物が届いたことに加えて、その後届供養になったり等しました。

しかしここでややこしいのが、「メッセージは届くけど既読は付かない」と「既読は付くけどメッセージが来ない」ということが発生し、どうやら「送信先」が、「既読」と「メッセージ」でバラバラになっているのではないかと予想される減少が起こると分かりました。

つまるところ、カオスです。

また、アンインストール時を想定して、機内モードにして、機内モードにしていないほうに届くか、と実験しましたが、向こう側からのPushのようで、こちら側が死んでいたからといって、もう片方に届くなんてことはなく、機内モードによる切り替えや、再取得は起こりませんでした。

解決策:旧端末のLINEを消す

とりあえず、届く対象が切り替わるものの、往復するわよくわからないわ、なことが起こります。

そのため、旧端末のLINEをさっさとアンインストールするというのが、ベストかと思います。

その上で、新端末で再起動を行ったりして、宛先を自分に向ける努力をして、既読情報や新着メッセージが全て新端末に向かうようにする、てな感じです。

よりおすすめの対策:一度機内モードにして様子を見てから消す

ただ、一度アンインストールしてしまうのは勇気が要るので、いきなりアンインストールするのではなく、ひとまず機内モードにして、アンインストールしたフリをしておいて、ちゃんと新端末に届くようになったのを見届けてからアンインストールするというのがおすすめの解決策・対策、となります。

ポイント:前のiPhoneも動く!と油断していると良くない

というわけで、旧端末で動作しているLINEが、少なからず、悪影響を及ぼしている、ということが分かりました

特に、Wi-Fiが自宅にある場合、機種変で3G/LTEが使えなくなっていても、通信ができてしまう関係上、ゲーム端末として使っていたりして、知らないうちに、LINEの動作を邪魔している可能性があります。

まとめ:既読通知・メッセージが届かなくなった、と思ったら

既読・メッセージ、また、Push通知含め、届かないなーと思ったら、機種変前などの別の端末で、ログインしたままになっているLINEアプリが存在しないかを確認してみてください

他の原因もあるかもしれませんが、原因の一つとして、特に機種変直後は、この「旧端末上のLINE」という原因を当たってみることをオススメします

参考実験結果

本筋から少しズレますが、参考となる検証結果を書いておきます。

こちらから、友だちへの既読情報は、新端末・旧端末、ともに成功する

友だちの送信してきたトークに対する、自分の「既読」の情報は、こちらからサーバ側に送られる方向の通信なので、新端末だろうが旧端末だろうが、ちゃんとサーバ側に送信され、友だちのiPhoneにまで到達し、「既読」がつきます。

再起動で取り戻せる情報には限りがある

LINEアプリの再起動で、届いていなかったメッセージや、既読情報が取得できる、と紹介しました。

しかし、既読情報については、かなり最近の既読情報しか取得できません

そのため、実際に既読されて、そのとき既読通知の受信に失敗していた場合、その失敗のタイミングから時間が経過してしまうと、再取得できません。

これは、サーバに「既読」という情報が溜め置かれる時間がわずかであることに起因すると思われます

メッセージであれば、2週間は取り置かれるので、再取得しやすいかと思われます。

まだ実験不足

取り急ぎ、同じ問題に遭遇している人向けに書いたので、まだ実験不足ですが、参考にはなるかと。。。

☆☆☆ LINEの不具合・バグ情報配信アカウントをフォロー ☆☆☆

コメント(0)

新しいコメントを投稿