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