3

我正在为一个玩具问题构建一个应用程序,以了解有关 SAFE 的更多信息。我有一些在服务器端运行的后台进程,有时它们需要向连接的客户端发送不提示的消息。这意味着我需要从任何特定请求之外引用 SocketHub。

目前我有一个可变变量,我在加入频道时将值传递给:

let mainChannel = channel {
    join (fun ctx socketId ->
        task {
        printfn "Connected! Main Socket Id: %O" socketId
        let hub = ctx.GetService<Channels.ISocketHub>()

        webSocketHub <- Some hub // Passing the reference to a mutable variable

        task {
            do! Task.Delay 500
            let m = (socketId |> (SetChannelSocketId >> GameData))
            do! (harderSendMessage socketId "message" m "Problem sending SocketId")
            } |> ignore
        return Channels.Ok })
}

但是,在我看来,应该有更好的方法来访问集线器——我就是想不通。

4

0 回答 0