2012-08-03 122 views
5

對於我的網站,我用C#編寫了一個WebSockets服務器(最喜歡的語言編碼),它使用Fleck,它大約有600行代碼。一切似乎都正常工作(有時雖然有點不穩定,但不知道這是我的代碼還是斑點問題)。WebSocket服務器的現代解決方案?

但是,我想從我的計算機移動到一個實際的域,我不確定是否有任何託管提供程序將支持這樣的.NET控制檯應用程序。

我在想,也許我不得不用PHP等其他語言來重寫它,但我對整個想法略微不確定。有什麼流行的託管服務提供商可以支持我所尋找的?即使他們是,這是一個好主意嗎?我認爲它可能不如使用Perl,PHP或Python的服務器的典型解決方案更安全或更慢。 (大量的P)

最後,如果重寫是一個好主意,我不確定我會寫哪種語言。這已經有一段時間了,我不確定每個人仍然使用什麼。 PHP仍然被認爲是Web服務器最受支持和最安全的嗎?

哪個WebSockets實現最適合?我花了一段時間才發現Fleck,似乎有兩倍的PHP衍生品,我感覺有點不知所措。另外,有關WebSockets的Stackoverflow上的很多帖子都來自兩年前,當時他們不受支持。

對不起,我的天真和我的問題缺乏重點,但正如你所看到的,我有點困惑,我的行動方向應該是什麼,我正在尋找一些見解。謝謝閱讀。

回答

5

也許最流行的WebSocket服務器是Socket.IO。它在Node(Javascript)中實現,並且在WebSocket支持不可用時具有對長查詢/ AJAX的回退。

WebSockets最受支持的實現是python pywebsocket項目,Mozilla和Google都使用它來開發和測試其客戶端瀏覽器實現。另外,pywebsocket可以輕鬆與Apache集成,允許您在同一個端口上運行Web服務器和websocket服務。

如果您的應用程序只需要基於WebSocket的消息傳遞服務,並且很大程度上是對等的,那麼您可以考慮使用商業WebSocket服務,如Pusher。這可以讓你不必爲此託管和管理自己的服務器。

我不會推薦PHP的WebSocket服務器。直到最近,還沒有一個PHP實現支持舊的和新的WebSocket協議變體。較舊版本仍被當前iOS設備使用,Chrome,Firefox,IE10和基於Flash的WebSocket填充web-socket-js使用較新的IETF 6455版本協議。

此外,你問PHP是否仍被認爲是最受支持和最安全的Web服務器。當然,PHP一直有很好的文檔和例子,並且部署非常廣泛,所以你可以爭辯說它得到了很好的支持。但是,PHP在安全性方面接近列表的底部。我肯定不會在PHP中重寫你的應用程序。

如果您偏​​愛C語言,您可能會考慮libwebsockets,您可以使用它來構建C或C++ WebSocket服務器。Andy Green開發並維護libwebsockets並參與了開發該標準的IETF工作組。

Ruby是另一種語言/社區,已經看到了很多WebSockets的使用(可能在Node之後)。 Ruby的最流行websocket庫是em-weboskcet

+1

這是一個很好的列表,我想補充一點,如果你想使用Python並願意爲性能交易一點支持(或者只是更喜歡極簡主義的解決方案),請看看gevent-websocket http: //www.gelens.org/code/gevent-websocket/ – Dreen 2012-08-03 21:06:30

-1

你可以嘗試node.js,是「新」,它看起來不錯。 Regards

+1

節點(node.js)還沒有內置websocket支持。也許你的意思是在Node中實現的非常流行的Socket.IO。 – kanaka 2012-08-03 17:40:50