[英]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:5000
到www.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.