メッセージを送受信ができるアプリを作ってみました。
リポジトリをclone
git clone https://github.com/gong-cha/line-clone
ソースコード
実装した機能
- 新規登録
- ログイン
- ログアウト
- アカウント削除
- リアルタイムメッセージ受信
- 画像投稿
- アイコン表示
- 既読機能
- ユーザー一覧に最新のメッセージ表示
意識したこと
- プリペアードステートメント
- 飲んす機能
- デザイン
リアルタイムメッセージの手法の検討
ブラウザに通知する方法の検討
- WebSockets
- レンタルサーバーでは、pushできない
- Server Sent Events (SSE)
- よさそう
- Long Polling
- Server Sent Events (SSE)の方がコネクション節約できそう
- Short Polling
- Server Sent Events (SSE)の方がリアルタイム性ありそう
新しいメッセージの検知
- inotify
- レンタルサーバーにphpizeでインストールできないため却下 (php-develがインストールできない)
- pcntl_signal
- php cliでしか使用できないため却下
- MySQL Binlog stream https://github.com/bullsoft/php-binlog
- レンタルサーバーにphpizeでインストールできないため却下 (php-develがインストールできない)
- TCP/UDP Socket
- Unix Domain Socketの方がプロセス間通信の効率よさそう
- Unix Domain Socket (抽象名前空間)
- よさそう
参考にしたサイト
LINEのクローンアプリを作成してみた
Reactでアプリを作成しました【9】【LINE clone】
ReactでLINEクローンの作り方 - React×Firebaseチュートリアル
1ヶ月でLINEクローンを開発!LINEの新卒エンジニア技術研修をご紹介
まとめ
まだまだ分からない部分がありますが、職業プログラマーとして働けるように就職活動していきます。