2016-04-25 112 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启动服务器。 您无法将两个端口绑定到一个端口。如果需要将两台服务器一起运行,请使用不同的端口。