2014-01-09 43 views

回答

1

主要區別在於,SSE只能接收來自服務器的消息。您無法將消息發送到服務器。所有可用SSE進行的工作都可以通過WebSockets完成。但反之亦然 - WebSocket 能夠發送數據到服務器。所以從這個角度來看WebSockets贏了。我看不出SSE有什麼優勢(或許表現?),但是我再也沒有太多的經驗。

請注意,StackOverflow使用WebSockets。他們可能有一些舊版瀏覽器的後備,我不知道這一點。

至於第三個問題:或許你應該先問你想用什麼語言?我一直在使用WebSockets和Python,它工作得很好。你可以直接使用WebSockets。使用socket.io的優點主要在於回退(假定它很重要 - 它不是恕我直言):如果WebSocket不可用,它可以自動切換到其他通信方式(如Flash或長輪詢)。缺點是它是Node.js(從某種意義上說,你必須限制自己使用一種語言),另外還有一些性能問題,即socket.io不能在一臺機器上擴展。

+0

謝謝!好的,但SSE有哪些優勢呢?如果有WebSockets,誰需要SSE? –

+0

@IgorChubin可能沒有人? SSE更容易實現 - 它們通過HTTP生活,不需要新的連接和特殊的WebSocket協議解析。但是現在已經有一些庫爲你做了。另外我認爲IE仍然不支持SSE。 – freakish

0

您可能會考慮使用像SocketIO這樣的庫來抽象出傳輸層,因此您不必擔心實時連接的維護機制。這將爲您節省頭痛的TON

相關問題