F# のバックエンド Suave アプリケーションによって提供されている PureScript アプリを実行しています。フロントエンドでは、PureScript でバックエンドへの WebSocket 接続を開く必要がありますが、パスの一部は、バックエンド アプリの実行方法に基づいて動的にする必要があります (たとえば、一部のボックスでは:ws://host1:9999/ws/blah
であり、他のボックスでは次のようになる場合があります)。ws://host2:7777/ws/blah
)。
そのため、アプリが提供されている現在の URL を取得して、 aws://
を先頭に、aws/blah
を最後に配置できるようにする必要があります (または、何らかの方法で相対 WebSocket パスを実行しますか?)。
私は次のようなことを試みました:
wdw <- window
htmldoc <- document wdw
let doc = htmlDocumentToDocument htmldoc
docUrl <- url doc
connection <- WS.create (WS.URL $ "ws://" <> docUrl <> "ws/blah") []
ただし、指定されたドキュメントの URLhttp://
は先頭にあります。文字列をハッキングしてその部分を切り取ることもできますが、もっとエレガントな方法を見つけたいと思っています。
問題があれば、ここでも Halogen を使用しているので、この状況で役立つものがあれば API にアクセスできます。