运行websockets Haskell示例

时间:2015-03-12 23:39:45

标签: haskell web websocket real-time haskell-platform

运行websockets Haskell示例,如下所示,显然不起作用,因为没有主要功能。

运行ghc --make Main.hs -o Main确认

Meow功能需要websockets连接。如何打开连接?

使用的库是https://github.com/jaspervdj/websockets

{-# LANGUAGE OverloadedStrings #-}
import           Control.Monad      (forever)
import qualified Data.Text          as T
import qualified Network.WebSockets as WS

meow :: WS.Connection -> IO ()
meow conn = forever $ do
    msg <- WS.receiveData conn
    WS.sendTextData conn $ msg `T.append` ", meow"

1 个答案:

答案 0 :(得分:2)

如果您查看示例文件夹:

https://github.com/jaspervdj/websockets/blob/master/example/client.hs

  

main = withSocketsDo $ WS.runClient&#34; echo.websocket.org&#34;   80&#34; /&#34;应用

app类型为app :: WS.ClientApp (),是Connection -> IO a

的同义词

runClient将为您打开套接字连接。如果您想知道如何,请查看函数的来源(https://hackage.haskell.org/package/websockets-0.9.3.0/docs/src/Network-WebSockets-Client.html#runClient)。

另外,withSocketDo属于socket。您可以在此处找到解释:https://hackage.haskell.org/package/network-2.6.0.2/docs/Network-Socket.html#v:withSocketsDo

此处还有其他示例:http://jaspervdj.be/websockets/example.html

我还没有使用websocket,回答不熟悉的主题通常不是一个好主意。希望得到一些帮助。