2015-09-28 160 views
1

我在寫一個連接到sails服務器的應用程序。套接字連接總是失敗

本申請書採用cordova,angularJSIonic

當我在瀏覽器中啓動我的應用程序(使用ionic serve)時,套接字無法連接到服務器。這裏是我的消息得到:

GET http://localhost:8100/socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_s…sails_io_sdk_language=javascript&EIO=3&transport=polling&t=1443472067762-4 404 (Not Found) 

服務器我試圖到上述網址更改爲在端口1337上本地運行:

http://localhost:1337/socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_s…sails_io_sdk_language=javascript&EIO=3&transport=polling&t=1443472067762-4 

,它的工作。

在我的代碼設置sails.io.js後的網址已被列入:

io.sails.url = 'http://localhost:1337'; 
io.sails.useCORSRouteToGetCookie = false; 

爲什麼問到localhost:8100而不是localhost:1337

當我在我的移動設備中啓動此應用程序時(將url設置爲http://192.168.1.10:1337)它工作正常。

sails.io.js版本是0.11.6,並且sails版本在您的移動開發環境0.11.0

回答

1

我終於找到了解決這個問題(但我很抱歉,我不記得在那裏我發現它:()

的問題是, (這是(從我的理解),因爲在某些瀏覽器中,如果代碼在另一個script標記中,它將在另一個週期中執行)

要到(第一個JS週期執行完畢,使其工作我必須在添加此代碼之前,我包括帆腳套腳本:

var apiHost = 'localhost'; 
      (function(){ 
       var io; 
       Object.defineProperty(window, 'io', { 
        get: function(){ 
         return io; 
        }, 
        set: function (value){ 
         var sails; 
         io = value; 
         Object.defineProperty(io, 'sails', { 
          get: function(){ 
           return sails; 
          }, 
          set: function (value){ 
           sails = value; 
           sails.url = 'http://'+apiHost+':1337'; 
           sails.useCORSRouteToGetCookie = false; 
          } 
         }); 
        } 
       }); 
      })(); 
+0

感謝張貼這個。我嘗試過實現它,仍然無法連接。使用'sails.useCORSRouteToGetCookie = false;'它反覆嘗試連接失敗。如果沒有,它會失敗一次'無法加載資源:服務器響應狀態爲404(未找到)http:// MY_SAILS_IP:1337/__ getcookie'有沒有想法? –

+0

@BradW我真的不知道,但這很奇怪,它不能解決您的問題。在我的情況下,我將所有js文件包含在head標籤中。首先,我將這段代碼(我的答案中的代碼)作爲內聯代碼添加,然後包括我的所有庫,並且它工作正常 –

+0

@fabian您是否加載了socket.io-client/socket.io.js?如果是這樣,何時? –

1

localhost:8100不會工作。我面臨着同樣的問題和不斷變化的localhost工作站的IP解決

+0

其實在我的手機上它正在工作,因爲通過更改URL:io.sails.url正在工作,但不在桌面上 –

+0

是的,對於桌面(模擬器),您必須使用本地服務器IP,而不是本地主機 – Muntasim

+0

但在桌面我使用localhost:1337(這是我的服務器的主機),但它實際上使用localhost:8100這是我的應用程序服務的服務器(使用Ionic) –