回答編集履歴

5

微修正

2020/04/01 11:19

投稿

katsubemakito
katsubemakito

スコア72

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  厳密にオンラインか判断することはできませんが手軽に実装できます。
20
20
 
21
- これらの情報はファイルやMySQLなどのRDBに保存しても良いのですが、ユーザー数が増えてくると苦しくなってきますのでMemcachedやRedisなどメモリ上で読み書きできるミドルウェアを併用されるのがよろしいかと思います。
21
+ これらの情報はファイルやMySQLなどのRDBに保存しても良いのですが、ユーザー数が増えてくると苦しくなってきますのでMemcachedやRedisなどメモリ上で読み書きできるミドルウェアを併用されるのがよろしいかと思います。(フレンド数の上限が多いと通信量がそれなりに増えますのでご留意ください)
22
22
 
23
23
 
24
24
 

4

微修正

2020/04/01 11:19

投稿

katsubemakito
katsubemakito

スコア72

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ブログをご覧いただきありがとうございます。
2
2
 
3
- URLにあるサンプルのようにFirebaseを利用するとJavaScriptだけで完結するので楽ちんなのですが、独自で実装されたいということでしょうか?(Firebaseは個人利用の範囲であればほぼ無料で利用できます)
3
+ URLにあるサンプルのようにFirebaseを利用するとブラウザ側のJavaScriptだけで完結するので楽ちんなのですが、独自で実装されたいということでしょうか?(Firebaseは個人利用の範囲であればほぼ無料で利用できます)
4
4
 
5
5
 
6
6
 

3

追記

2020/04/01 11:17

投稿

katsubemakito
katsubemakito

スコア72

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- リアルタイム性が必須ということですとロングポーリングを利用する方法があげられます。簡単に言うとブラウザとサーバの間をずっと繋ぎっぱなしにする技術で、ブラウザから接続されたらサーバ上のデータにフラグを立て、切断されたらフラグを下ろすような作りになります。たこちらは開発されているサービスの同時接続数が非常に多い場合はそのままコストに跳ね返って来やすいので注意が必要です。
25
+ リアルタイム性が必須ということですとロングポーリングを利用する方法があげられます。簡単に言うとブラウザとサーバの間をずっと繋ぎっぱなしにする技術で、ブラウザから接続されたらサーバ上のデータにフラグを立て、切断されたらフラグを下ろすような作りになります。フレンドのフラグの状態に変化があっ場合に接続中のユーザーに最新の情報を通知ます。ユーザーが繋ぎっぱなしになりますので、開発されているサービスの同時接続数が非常に多い場合はそのままコストに跳ね返って来やすいので注意が必要です。
26
26
 
27
27
 
28
28
 

2

微修正

2020/04/01 11:16

投稿

katsubemakito
katsubemakito

スコア72

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ぱっと思いつくアイデアとしては例えば以下のようなでしょうか。
7
+ ぱっと思いつくアイデアとしては例えば擬似的にオンラインか判断する以下のような方法でしょうか。
8
8
 
9
9
 
10
10
 
@@ -16,11 +16,13 @@
16
16
 
17
17
 
18
18
 
19
+ 厳密にオンラインか判断することはできませんが手軽に実装できます。
20
+
19
21
  これらの情報はファイルやMySQLなどのRDBに保存しても良いのですが、ユーザー数が増えてくると苦しくなってきますのでMemcachedやRedisなどメモリ上で読み書きできるミドルウェアを併用されるのがよろしいかと思います。
20
22
 
21
23
 
22
24
 
23
- またはロングポーリングを利用する方法りますが、開発さているサービスの同時接続数が非常に多い場合はそのまコストに跳ね返ってきます。簡単に言うとブラウザとサーバの間をずっと繋ぎっぱなしにする技術で、ブラウザから接続されたらサーバ上のデータにフラグを立て、切断されたらフラグを下ろすような作りになります。
25
+ リアルタイム性が必須ということですとロングポーリングを利用する方法げられます。簡単に言うとブラウザとサーバの間をずっと繋ぎっぱなしにする技術で、ブラウザから接続されたらサーバ上のデータにフラグを立て、切断されたらフラグを下ろすような作りになります。ただしこちらは開発されているサービスの同時接続数が非常に多い場合はそのままコストに跳ね返って来やすいので注意が必要です。
24
26
 
25
27
 
26
28
 

1

追記

2020/04/01 09:20

投稿

katsubemakito
katsubemakito

スコア72

test CHANGED
@@ -20,6 +20,8 @@
20
20
 
21
21
 
22
22
 
23
+ またはロングポーリングを利用する方法もありますが、開発されているサービスの同時接続数が非常に多い場合はそのままコストに跳ね返ってきます。簡単に言うとブラウザとサーバの間をずっと繋ぎっぱなしにする技術で、ブラウザから接続されたらサーバ上のデータにフラグを立て、切断されたらフラグを下ろすような作りになります。
24
+
23
25
 
24
26
 
25
27
  本格的にリアルタイム性が必要ということですと、オンライン状態を管理するサーバを立ち上げることになりますが、Node.jsのSocket.ioなどを利用されるとコーディング自体は簡単にできますよ。