【開発ナレッジ】LINEの既読になるまでのフロー技術 - j-komatsu/myCheatSheet GitHub Wiki
LINEのメッセージが「既読」になる仕組みを、専門的な技術要素と小学生にもわかる例題を交えながら解説します。
-
送信者がメッセージを入力
- ユーザーがメッセージを入力し「送信」ボタンを押します。
-
メッセージの送信リクエスト
- LINEアプリからLINEサーバーにHTTPS通信を使って送信リクエストが送られます。
-
メッセージの保存
- LINEサーバーは送信リクエストを受け取り、メッセージをデータベースに保存します。
-
受信者に通知
- LINEサーバーは受信者に新しいメッセージがあることをプッシュ通知(Push Notification)で知らせます。
-
手紙を書く
- 太郎くんが「おはよう!」と書いた手紙を作ります。
-
郵便ポストに入れる
- 太郎くんは手紙を郵便ポストに入れます。
-
郵便局が手紙を管理
- 郵便局が手紙を保管して、花子さんの家に届ける準備をします。
-
花子さんにお知らせ
- 郵便局の人が花子さんの家のドアをノックして「手紙が届いていますよ」と知らせます。
-
受信者がメッセージを開く
- 受信者がLINEアプリを開き、該当のチャット画面を表示します。
-
既読リクエストの送信
- LINEアプリは、LINEサーバーに「このメッセージを読んだ」という既読リクエストを送ります。
-
既読状態の更新
- LINEサーバーはデータベース上の該当メッセージの状態を「既読」に更新します。
-
送信者への通知
- サーバーから送信者に「既読」の状態を通知し、送信者の画面に既読マークを表示します。
-
花子さんが手紙を読む
- 花子さんがポストから手紙を取り出し、内容を読みます。
-
読んだことを郵便局に伝える
- 花子さんは郵便局に「手紙を読みました!」と電話します。
-
郵便局が情報を記録
- 郵便局は太郎くんから届いた手紙が読まれたことを記録します。
-
太郎くんにお知らせ
- 郵便局は太郎くんに「花子さんが手紙を読みました」と伝えます。
- 通信プロトコル: LINEはHTTPS通信を使って、メッセージや既読情報を安全にやりとりします。
- WebSocket: プッシュ通知やリアルタイム更新にはWebSocketが使われる場合があります。
- サーバーは受信したメッセージや既読状態をデータベースに保存します。
- メッセージは「未読」や「既読」などの状態を持つ属性で管理されます。
- プッシュ通知は、Apple Push Notification Service(APNs)やFirebase Cloud Messaging(FCM)を活用して実現されます。
送信者 サーバー 受信者
| | |
|----メッセージ送信--------->| |
| | |
| |----通知を送る--------->|
| | |
|<---既読通知が更新される---| |
フロー | 小学生例 | 技術要素 |
---|---|---|
メッセージ送信 | 手紙を郵便ポストに入れる | HTTPS通信 |
メッセージ受信 | 郵便局が手紙を届ける | プッシュ通知 |
メッセージを開く | 手紙を読む | LINEアプリが動作 |
既読状態を更新 | 「読みました」と郵便局に伝える | データベースの更新 |
既読通知を送信 | 太郎くんに「読んだよ」と伝える | サーバーからの通知 |