首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Suave中的Websockets

Suave中的Websockets
EN

Stack Overflow用户
提问于 2017-01-18 18:04:40
回答 1查看 1.1K关注 0票数 12

我一直在研究如何在Suave web服务器上使用websockets。不幸的是,它并没有很好的文档记录,我所找到的就是:https://github.com/SuaveIO/suave/tree/master/examples/WebSocket

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

我在过去使用过SignalR,但这次我更愿意避免使用它。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 21:00:59

Suave没有提供任何开箱即用的功能,但是您可以很容易地扩展该示例来做到这一点。

传递给handShake函数的套接字处理程序API可以将客户端信息传递到外部,您可以围绕它构建一个发送/广播ws

例如,可以像这样修改ws函数

代码语言:javascript
复制
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
    }

然后由您决定注入onConnectonDisconnect句柄来注册/注销客户端。

我使用MailboxProcessor来序列化连接/断开/发送操作,或者很容易使用反应式扩展,或者像ConcurrentDictionary这样的共享可变并发存储……

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41716418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档