簡體   English   中英

如何為Websocket連接指定主機?

[英]How do I specify the host for a websocket connection?

我有一個頁面可以打開與服務器的websocket連接。 Websocket服務器在開發中時為ws://127.0.0.1:5000 / ws,在部署到生產環境中時為ws://www.mymachine.com/ws。 這是否有捷徑,所以部署時我www.mymachine.com from 127.0.0.1:5000www.mymachine.com手動重寫此URI?

我已經嘗試過ws://ws但沒有用。 我正在嘗試獲得與普通網址相同的行為,您可以在其中使用/index ,根據其運行位置,它將轉到127.0.0.1:5000/index或www.mymachine.com/index。

我有一個類似的問題。 我解決了使用:

 var uri= window.location.host + window.location.pathname + 'ws'
  if (window.location.protocol === 'http:') {
    mysocket.connect('ws://' + uri);
  } else {
    mysocket.connect('wss://' +uri);
  }

除了(初始化)腳本頂部的1個簡單變量之外,您還可以查看File API-Blob和File引用的URL

This specification defines a scheme with URLs of the sort:
blob:550e8400-e29b-41d4-a716-446655440000#aboutABBA.

這些都存儲在一個URL store ,瀏覽器甚至應該擁有自己的微型HTTP服務器,以便可以在css,img src甚至XMLHttpRequest中使用這些URL。

然后,您的初始化腳本將使用if / else來構建您的url對象並將其放入存儲中。
此答案中有更多信息。 (此外,使用網絡套接字時,向后兼容性不是您的問題。)

希望這能使您想到一個主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM