gpt4 book ai didi

Suave 中的 Websocket

转载 作者:行者123 更新时间:2023-12-04 03:56:47 24 4
gpt4 key购买 nike

我一直在研究在 Suave 网络服务器上使用 websockets。不幸的是,它没有很好的记录,我设法找到的是:https://github.com/SuaveIO/suave/tree/master/examples/WebSocket

但是,这仅显示 websocket 响应发出请求的客户端,我希望基本上让套接字响应所有连接的客户端。类似聊天服务器的东西。

我过去使用过 SignalR,但更愿意为此避免使用它。

那么,我将如何让 Suave 服务器向所有连接的 websocket 客户端发送数据?

最佳答案

Suave 没有提供任何开箱即用的功能,但是您可以轻松扩展示例以实现此目的。

套接字处理程序 ws传递给 handShake函数可以将客户端信息向外传递,你可以围绕它构建一个发送/广播API。
ws可以像这样修改功能,例如

let ws onConnect onDisconnect (webSocket: WebSocket) (context: HttpContext) =
let loop () = (* the socket logic stays the same *)

socket {
onConnect webSocket context
try
do! loop ()
finally
onDisconnect context
}

然后由您来注入(inject) onConnectonDisconnect注册/注销客户端的句柄。

我用的是 MailboxProcessor序列化连接/断开/发送操作,或者使用响应式(Reactive)扩展或共享可变并发存储(如 ConcurrentDictionary)也很容易。 ...

关于Suave 中的 Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com