Haskell WebSocket Control.Concurrent - PullRequest
       5

Haskell WebSocket Control.Concurrent

0 голосов
/ 17 октября 2019

Требуется много информации о параметрах из ПЛИС с помощью веб-сокета (часть кода ниже). При запуске slowThingsInBackground он также всегда возвращает заголовок ответа. Мне это не нужно. Однако: если я уберу рыночные линии (-- ***), код сломается. Я полон решимости построить это на Хаскеле, хотя, возможно, есть более простые способы. Примечание: некоторые импорт мне нужен для других частей. Пожалуйста, игнорируйте.

module Main where

import           Control.Concurrent  (forkIO,threadDelay,threadWaitRead)
import           Control.Monad       (forever, unless)
import           Control.Monad.Trans (liftIO)
import           Network.Socket      (withSocketsDo)
import           Data.Text           (Text)
import qualified Data.Text           as T
import qualified Data.Text.IO        as T
import qualified Network.WebSockets  as WS

socket :: IO () 
socket = WS.runClient "10.34.50.23" 80 "/socket" matrix 

matrix conn = do 
  rxMsg <- WS.receiveData conn -- ***
  T.putStrLn rxMsg             -- *** 
  let txMsg = T.pack "{\"op\": \"readAll\", \"kwl\": \"system.temperature\", \"kw\": [\"fpga_ext\"]}"
  WS.sendTextData conn txMsg
  rxMsg' <- WS.receiveData conn 
  T.putStrLn rxMsg'

slowThingsInBackground = forkIO slowThings 
  where 
  slowThings = do 
    forkIO socket
    threadDelay (1000*1000*5) 
    slowThings

main :: IO ()
main = undefined 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...