如何使用websockets

时间:2016-10-24 16:15:15

标签: f# fable-f#

如何使用Fable从中消耗数据并将数据推送到websocket?我发现this github issue表明它可以完成,但无法找到任何文档或如何实现此目的的示例。

1 个答案:

答案 0 :(得分:7)

对于后来通过Google发现此问题的任何人,以下是@Lawrence在Gitter上提出这个问题时从Maxime Mangel收到的回复:

  

你好@lawrencetaylor你可以在这里找到一个使用带有FableArch的websockets的旧样本。   不要认为代码100%正确,因为它来自较旧版本的fable-arch。

     

但是,此代码应该向您展示如何使用带有fable-arch逻辑的websockets。   https://github.com/fable-compiler/fable-arch/commit/abe432881c701d2df65e864476bfa12cf7cf9343

     

首先创建websocket here

     

Here您可以看到如何通过websocket发送消息。

     

here如何在websocket上听。

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

Websocket创建

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

通过websocket发送消息

webSocket.send("Hello, socket!")

收听websocket

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区分联合的案例之一,这是fable-arch方式中的标准模式。 withProducer是fable-arch的一个功能。有关如何使用withProducer的简单示例,请参阅http://fable.io/fable-arch/samples/clock/index.html