Требуется много информации о параметрах из ПЛИС с помощью веб-сокета (часть кода ниже). При запуске 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