我正在运行一个由 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://
在它的前面。我可以破解字符串并将那部分撕掉,但我希望找到一种更优雅的方式。
如果重要的话,我也在这里使用卤素,所以如果那里有对这种情况有用的东西,我可以访问他们的 API。