2016-04-25 110 views
4

我需要幫助瞭解如何配置節點服務器和瀏覽器同步的端口。使用nodejs服務器配置browserSync

在serevr.js文件中,http服務器正在偵聽端口3006; server.listen(3006);

我想讓瀏覽器同步打開瀏覽器並將地址指向服務器端口3006。這是http服務器正在監聽的端口。所以地址是localhost:3006

gulpfile.js

gulp.task('serve', function() { 
browserSync.init({ 
    server: { 
     baseDir: './dist/' 
    }, 
    port: 3006 
}); 
}); 
  1. 在Mac終端,我跑gulp。這會打開瀏覽器到localhost:3006。精細。

  2. 在另一個終端窗口,從我做起,節點服務器,nodemon dist/serevr.js

我無法讓他們是相同的。服務器無法啓動,因爲端口3006上已經有某個服務器正在運行(步驟1),或者如果我先啓動服務器,則會發生以下情況。


Local: http://localhost:3007 
External: http://192.168.1.63:3007 

我怎樣才能讓他們一起工作?下面的幫助找到答案,從

解決方案:

gulp.task('serve', function() { 
    browserSync.init({ 
     port: 3007, 
     proxy: { 
      target: "localhost:3006", 
      ws: true 
     } 
    }); 
}); 

回答

3

基本上會有兩臺服務器在運行。一個nodemon運行,一個browser-sync將運行。兩臺服務器不能有相同的端口。

您需要在您的gulp文件的瀏覽器同步配置部分中代理您用於nodemon的端口。因此,在瀏覽器同步代理它之前,您需要先啓動節點服務器。

如果您需要啓用websocket,可以通過設置ws: true來實現。

這是它會是什麼樣子:

gulp.task('browserSync', function() { 
    browserSync.init({ 
     port: 3007, // you can specify the port here 
       // can't use the same port that nodemon uses. 
     proxy: { 
      target: 'localhost:3006', // original port 
      ws: true // enables websockets 
     } 
    }); 
}); 
+0

我明白了。我如何維護websocket連接? 連接到'ws:// localhost:3007/socket.io /?EIO = 3&transport = websocket&sid = uqjjv3tQ0dlAAAG'的WebSocket連接失敗:連接在收到握手響應之前關閉 (index):28 connected! – meteorBuzz

+0

這個工程,謝謝代理服務器的頭像 gulp.task('serve',function(){ browserSync。INIT({ 端口:3007, 代理:{ 目標: 「本地主機:3006」, WS:真 } }); }); – meteorBuzz

+0

我只是想提一下!是的,如果您的服務器使用WebSockets,則需要'ws:true'。 – timolawl

0

browserSync.init啓動服務器。 您無法將兩個端口綁定到一個端口。如果需要將兩臺服務器一起運行,請使用不同的端口。