我正在运行一个由F#中的后端Suave应用程序提供的PureScript应用程序。在前端,我需要在PureScript中打开一个WebSocket连接到后端,但是路径的一部分需要根据后端应用程序的运行方式而动态化(例如在某些方框上:ws://host1:9999/ws/blah
,在其他人身上可能是ws://host2:7777/ws/blah
)。
所以我需要获取我的应用程序正在提供的当前URL,以便我可以在前面添加ws://
,在最后添加ws/blah
(或者以某种方式执行相对WebSocket路径?)。
我尝试过这样的事情:
wdw <- window
htmldoc <- document wdw
let doc = htmlDocumentToDocument htmldoc
docUrl <- url doc
connection <- WS.create (WS.URL $ "ws://" <> docUrl <> "ws/blah") []
但是给出的文档URL前面有http://
。我可以把绳子砍掉并撕掉那部分,但我希望能找到一种更优雅的方式。
如果重要的话,我也在这里使用卤素,所以如果在这种情况下有一些有用的东西,我可以访问他们的API。