Je déconner avec WebSockets et j'ai écrit un « serveur d'écho » que je comptais ouvrir une session à la console comme il fonctionne:Terminal IO ne fonctionne pas dans l'application Chaîne/WAI
echo = Warp.run 3000 app
where
app = WS.websocketsOr
WS.defaultConnectionOptions
wsApp
httpApp
httpApp _ respond = do
put "HTTP Request Recieved"
respond $ Wai.responseFile
Http.status200
[]
"web/index.html"
Nothing
wsApp :: WS.ServerApp
wsApp pendingConn = do
conn <- WS.acceptRequest pendingConn
WS.forkPingThread conn 30
put "WebSocket Connection Open"
listen conn
listen :: WS.Connection -> IO()
listen conn = forever $ do
str <- WS.receiveData conn :: (IO Text.Text)
put $ Text.unpack str
WS.sendTextData conn str
main :: IO()
main = do
put "Echo WebSocket Running ..."
echo
put str = hPutStrLn stdout str >> hFlush stdout
Comme vous pouvez vois, j'ai essayé de tirer stdout
mais sans succès. Je reçois
$ ./echoServer
Echo WebSocket Running ...
mais rien de plus. Même si je peux charger "web/index.html" avec succès dans un navigateur et établir avec succès une connexion au WebSocket et l'utiliser, je n'obtiens aucun retour de la part de la console.
Que dois-je faire pour obtenir une sortie sur la console?
Versions Bibliothèque:
- Warp: 3.2.13
- WAI: 3.2.1.1
- wai-websockets: 3.0.1.1
- Websockets: 0.12.2.0