2016-07-15 5 views
1

私は別のネットワークからアクセスしていません。私はハイブリッドアプリ用のファイルを提供しようとしています。wifiがオフになっていると、GDCWebserver serverURLはnullです。

Webブラウザで

ログインhttp://192.168.1.132:8080/

let webServer = GCDWebServer() 

    webServer.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerRequest.self, processBlock: {request in 
     return GCDWebServerDataResponse(HTML:"<html><body><p>Hello World</p></body></html>") 

    }) 

    webServer.startWithPort(8080, bonjourName: "GCD Web Server") 

    print("Visit \(webServer.serverURL) in your web browser") 

ログを:ちょうど意図したように私は無線LANネットワークに接続されていたときに、基本的なサーバは以下のコードを使用して動作します実行している

私はwifiをドロップし、アプリとサーバーを起動すると、私は得る:

GCDWebServerが

+0

デバイスに3G/4G接続がありますか?そうでない場合は、WiFiがオフの場合、アクティブなインターフェイスはありません。理論的には、ループバックインターフェイスは引き続きアクティブにする必要がありますが、GCDWebServerには、インターフェイスを指定できるオプションがないようです。 – Paulw11

+0

良い点。デバイスには3g/4gがありません。 – yeahdixon

+0

GCDWebServerを使用してこのQ/Aのより良い露出を得るための投稿のタイトルを変更することをお勧めします – DwarDoh

答えて

1

SERVERURLがnull(ヌル)が、古き良きローカルホストでポート8080および到達可能で起動動作します:

はlocalhost://

利用可能提供されたbonjourサービスのURLでした。

func webServerDidCompleteBonjourRegistration(server: GCDWebServer!) { 

    if(self.serverURL == nil){ 
     self.serverURL=self.webServer!.bonjourServerURL 
     print(self.serverURL) 
     self.initWebView() 
    } 


} 

はWi-Fiでローカルに実行されています。

0

これは予想された動作ですが、これについてはドキュメントがより明確になる可能性があります。

- (NSURL*)serverURLは、サーバーポートに追加されたデバイスのプライマリIPアドレスを返す便利な方法です。デバイスがネットワークに接続されていない場合は、nilが返されます。 GCDWebServerGetPrimaryIPAddress()の実装を参照してください。

このメソッドから返された返り値がnilの場合、サーバーが実行されていないか、外向きのIPが表示されていない、つまりlocalhostまでしか到達できないことを意味します。

関連する問題