WebSocket vs. IRC vs. XMPP?


#1

這邊想問一下觀念的問題
websocket / IRC / XMPP 這三者有什麼不同?


#2

你的問題很像在問 HTTP / FTP / SMTP … 有何不同 …

每一種協定都有它的『適用範圍』和『目的』,類似 http / web server 用的是 HTTP(1~2) / WebSocket / SPDY … ,作用工具是"瀏覽器",而其他的不行(見最後)

IRC 類似於 BBS,一個簡單的通訊協定來管理聊天群組這回事,terminal 就可以用,有 web 版單純有人幫忙做 relay 而已

XMPP 全等於 Jabber,用於聊天,大都需要特製的 client 還有中央 server 來做 relay (Client / Server 架構)

IRC & XMPP 在 Linux 都有一票 client 可用,IRC 沒通訊錄,誰加就誰聊天,可以對聊天室下指令,XMPP 有通訊錄,可以一對一聊天,簡單的來說可以把 XMPP 看成 LINE 就是,而 IRC 是大亂鬥聊天室

而這些東西其實你真的想瞭解真實面貌,就去找 spec (specification) 就好了,然後去找官方的 DOC,類似

https://tools.ietf.org/html/rfc2812

裡面會和你說每個封包和交互模式長怎樣,你可以徒手照這個說明打出你自己的應用出來之類的

不過這邊所有東西都請注意一下,除了 websocket 之外其他應該都無法在 web 實現,因為 web 無法開一個固定 port 讓外面的人進來連線,或是開出一個完全自訂化的 socket 來去連別人,所以無法當 server 來用,自然這些 client 端也無法打出來之類的(也就是無法完成 spec 的需求),否則…chrome 應該會取代掉 apache / nginx,這樣不對唄?

然而聊天軟體如果真的要做成 web 版就勢必要有別台主機當 proxy 或是 relay … 你不怕你的聊天資訊被偷嗎?我是會怕啦 X"DD 這也是這類的東西通常都有額外的 client 的原因就是

anyway 每個 protocol 都有其解決的目標和目的,去看 spec 最精實但能解惑,而實作基本上就要靠自己就是了


#3

好的,感謝回覆!