Обработчик Cowboy websocket: как установить тайм-аут для первого сообщения?

У меня есть соединение через веб-сокет между моим сервером и клиентом, которое должно поддерживаться до тех пор, пока клиент не закроет его. При открытии соединения клиент должен аутентифицировать себя, отправив первое сообщение с токеном. Если в течение некоторого времени после создания обработчик веб-сокета не получит такого сообщения, он должен завершить работу. Как реализовать такой таймаут?

ПРИМЕЧАНИЕ: опция idle_timeout не подходит, так как тайм-аут нужен только для первого сообщения.


person User590254    schedule 19.03.2018    source источник


Ответы (1)


Просто запустите таймер в обратном вызове websocket_init самостоятельно. Если пользователь аутентифицируется до истечения времени ожидания, просто игнорируйте его, вы можете добиться этого, обновив состояние, когда пользователь аутентифицирует себя.

erlang:start_timer документация:

http://erlang.org/doc/man/erlang.html#start_timer- 3

person Elvis Oric    schedule 20.03.2018