---
# System prepended metadata

title: Untitled

---

## 早く終わりタイマー

## 概要

会議を良い感じに切り上げたい(盛り上がっているときに会議の終了時間が来ると辞めようって言い出しにくい)

⇨ これを解決するために会議の終了時間になるとお知らせしてくれるツール

## 機能

### フロントのページ

- ルームを作る/参加する画面
- ルームにいるときの画面
    - 真ん中にクソデケエ文字で残り時間を書く
    - 残り0秒で参加者全員にアラート音で通知
    - ルームにいる時に終了時刻をいじることができる。

**ルームにいるときの画面**

- 状態1: 終了時間が決定されていない状態
    - 誰かが終了時間を決定すると状態2に移行する
- 状態2: タイマーが動いている状態
    

- タイマーが終わったら状態1に戻る

<>

### フロントの実装

- ルームを作る/参加する画面
    - ルーム作成部分
        - <room name>enter
        - <password>
    - ルーム参加部分
        - <room name>enetr
        - <password>

- ルームにいるときの画面
    - 真ん中にクソデケエ文字で残り時間を書く

### バックエンドの実装

- room nameはできればpathに追加したい
    - kanailabはhttps://www.retimer.com/kanailab/
    - 実現方法1: バックエンドがhtmlファイルを提供する場合
      - テンプレートのhtmlを持っててバックエンドがそれをパスに応じて埋め込む
    - 実現方法2: フロントをリッチに作る
      - フロント側で「このパスに来たらこれを表示」みたいなことが確かできるのでそれを使う。
      - https://www.retimer.com/kanailab/ <- access
      - フォームが出てきてpasswordを入れさせられる。 <- **ここ**
      
      - POST https://backend.retimer.com/kanailab <- 認証します(roomが存在するか,　パスワードが一致するか)
          - (OKのとき)
              - 接続者のなにかを控えた上で、socket ioの接続待ち
          - (NGのとき)
              - error(connection failed)
      - ClientがSocket.IOでの接続開始
      
      {password: <room password>} => room id <socket io>
      
- フロント側でroomに入る処理(socket.connect) どの部屋に入るかを決めたい。 (socket ioにパスワード周りの機能があるか不安)


- socket io側にpassword機能が無くて、password周りの実装を自前で作る場合

room_nameをそのままsocket ioのroom idにしてしまうと、
passwordを通さずに接続できる方法が出てきそうな気がする。

⇨ middlewareとかでpasswordのパラメータを見てダメだったらconnection_errorみたいな実装すれば問題なさそうな気もする。



- もし無い場合は　(room name,password) => (room id) ro



みなさん〜〜！！！！壊して　->　<課長心の一句>




io.on('connection', (socket) => {
    socket.on('chat message', msg => {
      io.emit('chat message', msg);
   });
});
    


```js
io.on(<string>,<(Socket) => void>)


const func = function (socket) => {

}



```



```js

const func = (socket) => {
    socket.on('chat message', msg => {
      io.emit('chat message', msg);
   });
}

io.on('connection',func);

```