如何使用Fable消费数据并将数据推送到Websocket?我发现this github issue表示可以完成此操作,但找不到任何文档或实现此操作的示例。

最佳答案

对于以后通过Google找到此问题的任何人,这是@Lawrence在Maximer Mangel上对Gitter提出此问题时收到的回复:


您好@lawrencetaylor,您可以在此使用带有FableArch的websockets的旧示例。
不要认为代码100%正确,因为它来自旧版本的fable-arch。

但是,此代码应向您展示如何将Websocket与寓言-拱形逻辑一起使用。
https://github.com/fable-compiler/fable-arch/commit/abe432881c701d2df65e864476bfa12cf7cf9343

首先,您创建websocket here

Here,您可以查看如何通过网络套接字发送消息。

还有here如何在websocket上收听。


我已经复制了他在下面提到的代码,以便以后发现此问题的任何人都可以阅读它,而无需关注这些链接。以下代码应归功于Maxime Mangel,而不是我。

Websocket创建

let webSocket =
    WebSocket.Create("wss://echo.websocket.org")


通过网络套接字发送消息

webSocket.send("Hello, socket!")


在网络套接字上收听

let webSocketProducer push =
  webSocket.addEventListener_message(
    Func<_,_>(fun e ->
      push(ReceivedEcho (unbox e.data))
      null
  )
)

createApp Model.initial view update
|> withProducer webSocketProducer
|> start renderer


注意:上面的代码中的ReceivedEchoAction区分联合的一种情况,这是寓言-拱形方式的一种标准模式。而withProducer是寓言中的一个函数。有关如何使用withProducer的简单示例,请参见http://fable.io/fable-arch/samples/clock/index.html

10-06 02:58