接続を開いた後、次のようなスニペットがあります
receiveEvents :: WS.Connection -> Document -> IO()
receiveEvents conn document = forever $ do
putStrLn "receive events"
evnt <- WS.receiveData conn
let val = fromJust $ decode' evnt
liftIO $ atomically $ do
writeTChan (eventQueue document) val
イベントがクライアントから送信された場合、このコードは機能しますが、非アクティブな接続が閉じられた後、クライアント (web javascript) 接続が閉じられたときにエラーが発生します (websockets の onclose が呼び出されます)。一定の非アクティブ後に Websocket は閉じますか。また、これがメインスレッドにある場合、正常に動作しますか?