如何让 SignalR 与 Suave 一起工作?

How to get SignalR working with Suave?

有没有人有如何让 SignalR 在 Suave 中工作的示例?

我已经创建了一个 demo project 显示一个工作的 Suave 服务器和一个工作的集线器代理生成,以及一个演示页面。该页面显示初始化失败并尝试连接到“//ping”时重复出现错误。

服务器配置:

    let app =
    choose [
             GET >=>
                choose [
                    path "/demo" >=> file (Files.resolvePath __SOURCE_DIRECTORY__ "test.html")
                    OwinApp.ofAppFunc "/" SignalServer.app
                ]
            ]

    startWebServer defaultConfig app

问题似乎是通过 Suave 适当地路由所有 signalR 'plumbing'(ping 和 websockets),但到目前为止我还没有运气...

编辑:应该通过 https://github.com/SuaveIO/suave/pull/548

修复

这似乎是 Suave 的 Owin 实现中的错误。您应该将其报告给回购协议。

我确实有 hack 修复程序,但需要自己编译 Suave。 https://github.com/TheAngryByrd/suave/tree/signalrdemo