2015-11-05 94 views
0

假設我有自己定製的基於Java Chromium Embedded Framework (JCEF)的網頁瀏覽器,它在內部運行WebSocket服務器。是否可以通過WebSocket握手發送自定義數據?

現在我的Web應用程序運行在我的CustomWebBrowser上,可以使用websocket連接內部WebSocket服務器。

但是,我不希望任何其他websocket客戶端(使用websockets的另一個瀏覽器或桌面應用程序)連接到我的內部WebSocket服務器。

一個這樣做的方法是通過以下步驟:

  1. 有無CustomWebBrowser產生一個祕密,並從JCEF發送祕密使用Java-JavaScript bridge Web應用程序。
  2. Web App將發送祕密內部的WebSocket服務器的握手過程中,這樣的事情:

    var ws = new WebSocket(myURL, protocols, mySecret);

  3. 內部的WebSocket服務器可以驗證與CustomBrowser其產生和傳送來的祕密的祕密在步驟1中。

  4. 如果祕密被驗證,那麼握手成功完成,否則websocket連接被拒絕。

我的問題是:是否有可能WebSocket的握手期間發送任何自定義數據?

回答

2

是的,WebSocket handshake使用正常的HTTP請求/響應,您可以添加包含自定義信息的任意頭文件。

WebSocket客戶端/服務器的庫可能不允許這樣做;但在從客戶端發起連接時,始終可以在url或中嵌入信息。

相關問題