小编tin*_*y m的帖子

Suave with f# - 如何在 f# 聊天应用程序中使用 rest api 和 websocket 端口?

我有一个 f# 聊天应用程序,它需要公开休息 api 以及用于实时消息传递的 websocket。我正在使用 Suave 框架。

我有一个前端,它有一个“聊天”按钮,可以在点击时运行 javascript。javascript 触发为 websocket url (/websocket) 创建一个 web socket,并为实时聊天建立连接。但是,我还有另一个按钮“FetchUsers”用于获取系统中的所有用户。但是为此,我需要不同的路径(/people)。我不认为我可以使用 (/websocket) 路径,因为在后端,只能为特定路径定义一个函数。

为了实现这一点,我提出了一个想法,我可以公开 2 个不同的端口:一个用于其余 api,另一个用于 Web 套接字。我的 rest api (localhost:8082/people) 用于获取系统中的所有用户,而 web sockets (localhost:8080/websocket) 用于向系统中的所有用户发送聊天消息

我愿意接受有关如何实施聊天应用程序的任何其他建议。

程序文件

let app : WebPart = 
  choose [
    path "/websocket" >=> handShake ws
    path "/websocketWithSubprotocol" >=> handShakeWithSubprotocol (chooseSubprotocol "test") ws
    path "/websocketWithError" >=> handShake wsWithErrorHandling
    GET >=> choose [ path "/" >=> file "index.html"; browseHome ]
    NOT_FOUND "Found no handlers." ]

let myCfg =
  { defaultConfig …
Run Code Online (Sandbox Code Playgroud)

rest f# websocket suave

5
推荐指数
1
解决办法
205
查看次数

标签 统计

f# ×1

rest ×1

suave ×1

websocket ×1