2015-03-03 20 views
0

我有一個使用Python編寫的websocket服務器(來自https://github.com/opiate/SimpleWebSocketServer),當我嘗試從我家連接到它時,它工作正常。但是,當我嘗試從學校連接到它時,如果存在Web代理,它將無法連接錯誤「未定義」。代理阻塞websockets?如何來回

我相信它是停止連接的代理,但不知道如何測試以確定它是否確實如此。我如何測試這個,如果它是代理,我該如何解決這個問題?

感謝

+0

從我所瞭解的websocket是一個GET然後升級。代理將阻止升級部分,因爲他們不知道如何處理它。在那裏定義一個規則來告訴它在升級請求中要做什麼,websockets應該可以工作。 – hyades 2015-03-03 08:57:28

回答

3

許多代理服務器用自己取代HTTP請求頭。他們會刪除任何他們不明白的標題,所以當代理不支持websocket的時候,它會阻止任何websocket握手的工作。

作爲解決方法,您可以爲您的網站獲取TLS證書並使用https和wss。這加密了標頭,從而防止代理與它們混淆。

順便說一句:您應該支持TLS。在今天的世界中,你不再需要一個很好的理由來使用加密,你需要一個不需要的理由。