LoginSignup
tomoki0301s
@tomoki0301s

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

どのようなサービスを使えばいいか教えてください

<やりたいこと>
・複数のブラウザから同期的に見れるカウントダウンタイマー
・管理画面より一時停止や時間変更が行えるようにしたい
・画面内にGoogleスプレッドシートからの情報を連携させれるとよい
(APIで可能だと思われる)
・できれば無料が良いが、使用するのは月1回程度のため従量課金でも可。

イメージはDBに終了時間を格納し、その値をクライアントサイドから取得しに行く。
また、一時停止の場合はフラグを立て、再開時に新たな終了時間をDBに書き込む。

GASでの開発経験はあり、JavaScript(Vue.js)、htmlは少し触れます。
GASの既存Webアプリとの親和性を考えGASで実装を検討していましたが、難しそうなため関連サービスで実装を目指しています。
どのようなサービスを使えばよいかご助言をお願いします。

0

2Answer

なにをどのように「カウントダウン」するのですか?


【追記】

下のコメント、

サーバーブロードキャストがやりたいことなら Websocket のような技術を使うということになると思いますが、そこまでやるのですか?

の返事が不明ですが、そこまでやるということであれば、自分が詳しい ASP.NET の世界では SignalR という技術があります。他の世界の話は他の方の回答をお待ちください。

ASP.NET Core SignalR の概要
https://learn.microsoft.com/ja-jp/aspnet/core/signalr/introduction?view=aspnetcore-8.0

上の記事に書いてあるように、SignalR はクライアントが WebSocket を使えればそれを、使えない場合はサーバー送信イベント、Long Polling などサーバーとクライアントの機能内にある最適なトランスポート方法を自動的に選択します。

サーバーブロードキャストの具体例は以下の記事を見てください。

チュートリアル: SignalR 2 を使用したサーバー ブロードキャスト
https://learn.microsoft.com/ja-jp/aspnet/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr

ASP.NET Core 版はこちら:

ASP.NET Core SignalR
http://surferonwww.info/BlogEngine/post/2021/12/29/aspnet-core-signalr.aspx

たぶん、そこまでやる気はないのではと思いますが、であれば、クライアント側からタイマーと ajax を使って定期的に要求を出して情報を取得するようにしてはいかがですか。

0

Comments

  1. @tomoki0301s

    Questioner

    毎秒カウントダウンして画面に表示させます。
    タイマーだと思ってもらえれば大丈夫です。

  2. HTTP 通信は、基本、クライアントからの要求を受けて初めて応答を返すということは知ってますか?

  3. @tomoki0301s

    Questioner

    WebSocketなど使用する必要があるということでしょうか?

  4. サーバーブロードキャストがやりたいことなら Websocket のような技術を使うということになると思いますが、そこまでやるのですか?

案として
GASだけでできそうな気はします
スプレッドシートに終了時間と稼働フラグを持っておいて
表示クライアントをHTMLでGAS経由で終了時間と稼働フラグを得てJSかなにかで
終了時間ー現在時間でカウントダウン

管理者画面もHTMLで作っておいて
GASで終了時間と稼働フラグのセット

こんだけでいけそうな気はします

0

Comments

  1. 毎秒GASで問い合わせに行くとGASの制限回数とかに引っかかるかもしれんから
    60秒に一回GAS問い合わせ
    その間のカウントダウンはJSだけとかで良いんじゃ無いかなー

Your answer might help someone💌