键入从GHCJS客户端到Yesod / Snap / Servant的安全RPC调用示例

时间:2015-10-09 08:17:55

标签: haskell yesod haskell-snap-framework ghcjs transpiler

我有两个关于对Yesod/Snap/Servant的RPC调用的相关问题:

  1. 假设我在服务器上有一个函数,用Haskell编写,由GHC编译:

    add x y = x+y+42

  2. 怎么可能:

    1. 我从客户端调用此函数(客户端也是用Haskell编写的,用GHCJS编译),
    2. 在服务器上执行该功能,
    3. 将结果返回给客户端?
    4. 以类型安全的方式完成所有这些工作吗?

      例如,我想在客户端上写这样的东西:

      main= putStrLn $ show $ add 2 3
      

      这样,添加功能会在服务器上执行

      使用服务器上的Yesod/Snap/Servant和客户端上的GHCJS执行此操作的最简单方法是什么?

      2)同样,我想写一个“功能”: getPhaseOfMoon :: IO Phase在服务器上运行,我希望以类型安全的方式从客户端调用getPhaseOfMoon

      这样我就可以在客户端上写这个:

      main= do 
         p<-getPhaseOfMoon
         putStrLn $ show p
         return ()
      

      哪些

      1. 转到服务器
      2. 服务器咨询月相
      3. 服务器将Phase返回给客户端
      4. 客户端在JavaScript控制台中显示月相。
      5. 问题

        如何使用Yesod/Snap/Servant(服务器)+ GHCJS(客户端)执行此操作?

0 个答案:

没有答案