我有一個服務器在端口8181上創建套接字。我想從Google Chrome 14中打開的網頁訪問套接字。我想這是不可能的。 Chrome爲Web套接字提供支持,但不支持標準套接字。是對的嗎?通過網絡套接字公開套接字
是有可能以某種方式創造那樣會暴露我的socket服務器偵聽端口8181的一些其他端口上運行的網絡套接字服務器的中介?
我有一個服務器在端口8181上創建套接字。我想從Google Chrome 14中打開的網頁訪問套接字。我想這是不可能的。 Chrome爲Web套接字提供支持,但不支持標準套接字。是對的嗎?通過網絡套接字公開套接字
是有可能以某種方式創造那樣會暴露我的socket服務器偵聽端口8181的一些其他端口上運行的網絡套接字服務器的中介?
websockify是一個通用的WebSockets到TCP套接字代理/網橋。我最初創建了websockify以允許noVNC(HTML5 VNC客戶端)能夠連接到未打補丁的VNC服務器。但它通常是有用的(不是VNC特定的),所以我把它作爲一個單獨的項目分離出來。
在UNIX/Linux系統,你將運行websockify這樣的:
./websockify 8080 my_server:8181
8080端口在上面的例子是偵聽WebSocket連接的端口。 my_server是系統的名稱/ IP,您有一臺服務器在端口8181上進行偵聽。如果您在與服務器相同的系統上運行websockify,則可以使用localhost
來代替'my_server'。
websockify項目還附帶一個名爲websock.js的Javascript包裝庫。 websockify支持新的協議版本(由Chrome 14+和Firefox 6+使用),但它也適用於舊版本。但是,使用舊版本的協議時,無法發送原始二進制數據(僅限UTF-8),因此websock.js和websockify一起使用時,base64會對數據進行編碼/解碼(在瀏覽器和websockify之間)較舊的協議,以便您仍可以將原始二進制數據發送到目標或從目標發送。
在Node.js中,您可以創建服務器和客戶端。您可以創建一個應用程序,其中包括端口上的WebSockets服務器(例如8182)和連接到端口8181的客戶端。您只需將所有傳入數據(在解碼WebSockets格式後)路由到8181,並從8181接收所有數據轉換成WebSockets格式並傳遞給客戶端(Chrome)。 – pimvdb
我想要更多的細節。你在建立你自己的服務器嗎?使用像Tomcat或Apache這樣的服務器? GlassFish應用程序服務器包括grizzly,它是一個websocket服務器。我現在正在調查它。壞消息(不應該永遠持續下去)是我還沒有找到任何工作實例。 –
@mgamer,您的問題已得到充分回答? – kanaka