私はこのsuaveでwebsocketでサーバープッシュを実装する方法は?
let echo (ws: WebSocket) =
fun ctx -> socket {
let loop = ref true
while !loop do
let! message = Async.Choose (ws.read()) (inbox.Receive())
match message with
| Choice1Of2 (wsMessage) ->
match wsMessage with
| Ping, _, _ -> do! ws.send Pong [||] true
| _ ->()
| Choice2Of2 pushMessage -> do! ws.send Text pushMessage true
}
または私は同時読み書きのための2別々のソケット・ループを必要としないようなものを書くことができますか?
あなたはこのような場合のために良いAsync.Choose-実施を提案してください可能性:このような
何かがトリックを行う必要がありますか?ループについて:これは(https://github.com/SuaveIO/suave/issues/307#issuecomment-146873334)良いですか?感謝! –
私は2ループのあなたの実装は、スレッドセーフな問題を持っていると思う(2スレッドから書き込み) –