2011-10-02 52 views
5

我開始閱讀有關的WebSockets,但我不能找到一個很好的WebSocket服務器,並容易一些例子中,程序...易於編程的WebSocket服務器

我是一個完整的初學者,我不不需要支持大併發性的服務器,我只想嘗試一些示例...

任何幫助?

謝謝!

+0

你到底想要做什麼? – bksi

+0

一些測試,如聊天,數據流...只是嘗試從客戶端的websockets ... – Andres

+0

@ bksi,該示例是一個套接字服務器。 WebSockets是一個具有特定握手和數據框架的協議。 – kanaka

回答

2

請記住,websockets是新技術。剛剛提交的最新草案草案已成爲實際標準。 Opera甚至還沒有支持最新的協議,而且微軟遠遠落後(據說部分實現將在10版MSIE中提供)。 Chrome在開發版本中支持它。 Firefox最近發佈了支持它的版本7。如果您需要成爲早期採用者的「開發社區」的一部分,請不要感到驚訝:即隨着工具變得成熟並且教程更充足,開機自如。您可以關注my blog。我創建的東西看起來就像是你正在尋找的東西,它將免費分發給開發人員。時機可能不錯,即使它還沒有準備好發佈。它將與所謂的HLL框架的一部分相集成,這將使應用程序更易於開發。我還想使用腳本(包括JavaScript)開發後端應用程序組件。我已經在HLL框架中做了一些工作。有一個工作演示,您可以下載dhtml/javascript客戶端,並且很快會有一個非瀏覽器客戶端,您也可以使用它來構建應用程序組件。該服務器採用純Sun(Oracle)Java構建,在Linux和Windows上運行良好。既然它也提供了腳本引擎,用腳本編寫的應用程序組件也是可移植的。

websocket服務器支持所提議的協議的最新版本,該協議現在已經被提交成爲實際的websocket標準。該演示將在Chrome開發通道(也稱爲Chromium)14或更高版本上運行。另外,現在已經發布的Firefox 7(不再處於Beta版)。

+0

不錯的工作......真的很有趣...編程握手有多困難?因爲我真的開始考慮製作自己的小型,非常基本的小型服務器,因爲我只想發送一些東西並從客戶端接收它......我不需要高併發性或類似的東西......所以建立連接有多難? – Andres

+0

你可以閱讀我的答案,迴應我自己的問題,當我第一次開始使用websocket服務器時,與你的問題非常相似:http://stackoverflow.com/questions/6122456/simple-java-javascript-start -we-websockets/7336944#7336944 –

+0

BTW:HLL(包括websocket服務器)旨在實現快速輕量化。我一直認爲這是一項要求。但是,當某些應用程序需要擴展以處理非常大的流量負載時,我也會得到答案。 (我不確定我現在的版本會不會,雖然可能?沒有測試過。) –

0

如果你想用JavaScript編寫的WebSocket服務器比我建議你看看Socket.IO。它使用起來非常簡單,並且您可以在線找到大量文檔和示例。

如果你想玩低級別的WebSocket服務器並且JavaScript不是必需的,你可以查看我的基於websockify項目的Python。 websocket.py模塊是一個通用的WebSocket服務器框架。在tests目錄中有一些簡單的例子。 Websockify本身建立在websocket.py上,以創建一個相當複雜的websocket到原始套接字橋/代理。

+0

'Socket.IO'不是一個WebSocket服務器 - 它是一個通用的網絡套接字通信庫,如果它們受支持,它可以使用WebSocket作爲_transport_。 – Alnitak

+0

@Alnitak。實際上,Socket.IO **是一個WebSocket服務器。是的,它不僅是一個WebSocket服務器(即使Apache可以配置爲服務於其他協議,例如FTP,它也是一個Web服務器)。是的,您可以將其配置爲使用備用傳輸作爲後備,但默認/優先傳輸是WebSockets。這個API與WebSockets API類似(並且在很多方面基於它),但是通過會話管理和其他細節來擴展它。 – kanaka

+0

這是有點我的觀點 - 你必須使用特殊的客戶端'Socket.IO'對象和它的API。它不是「純粹的」WebSockets--你不能直接向'Socket.IO'服務器打開'ws://.../' URL,並期望標準的WebSocket API能夠處理它。 – Alnitak

0

我已經與node.ws.js有良好的結果。

請注意,它暫時與Chrome 14不兼容,因爲Chrome現在已經實現了最新版本的IETF Hybi規範,並且node.ws.js還沒有趕上。

它適用於所有版本的Safari,但包括Mobile Safari在內。

+0

據我所知,node.js在支持更新的協議方面遠遠落後。真正? (hybi-6?)它也被描述爲一個「兼容websocket」的http服務器,而不是一個websocket服務器。我不確定那是什麼意思。 https://github.com/guille/node.websocket.js/ –

1

最流行的服務器端JavaScript框架是NodeJS,它在Linux上運行最好,目前在開發中使用Windows版本。

http://nodejs.org/

按照安裝的指示在這裏:

https://github.com/joyent/node/wiki/Installation

一旦你安裝的節點和NPM安裝socket.io包:

NPM安裝socket.io

然後訪問http://socket.io/我介紹的API whe你可以查看服務器端JavaScript和客戶端JavaScript。

+0

,但與socket.io的問題是,它使用從客戶端的特殊api,我需要/想要使用標準的... – Andres

+0

作爲據我所知,node.js在支持更新協議方面遠遠落後。真正? (hybi-6?)它也被描述爲一個「兼容websocket」的http服務器,而不是一個websocket服務器。我不確定那是什麼意思。 github.com/guille/node.websocket.js –

+0

在'node.js'本身沒有對WebSockets的直接支持 - 這裏和我的回答中提到的支持都是第三方庫。 – Alnitak