我有同樣的機器(即同一IP)在兩個不同的瀏覽器(Chrome和Safari),並想知道是否可以將它們連接到同一臺服務器都使用的WebSocket?同一臺計算機上的兩個不同瀏覽器是否可以使用websocket連接到服務器?
我試過。 Chrome瀏覽器連接正常,但Safari瀏覽器將引發一個錯誤,抱怨:
Error during WebSocket handshake: location mismatch:
wss://www.mysite.com/sockjs/310/s1a5r_6q/websocket != ws://www.mysite.com/sockjs/310/s1a5r_6q/websocket
sockjs-0.3.js:282Closed transport: websocket SimpleEvent(type=close, code=1006, reason=WebSocket connection broken, wasClean=false)
但我不知道這是由於每個IP地址一個WebSocket連接的一些限制?
雖然我理解'x-forwarded-proto'部分,返回(request.connection && request.connection.authorized!== undefined)背後的邏輯是什麼? (request.socket && request.socket.secure);',當x-forwarded-proto'頭沒有設置? – MLister
當'X轉發,proto'頭沒有設置,王菲做最好的,如果連接來通過SSL檢測 - 但它只能猜測。此外,它只有在您的SSL終止由node.js(而不是haproxy,stunnel等)內部完成時才能檢測到它。 – Marek