使用nodejs服务器配置browserSync
问题描述:
我需要帮助了解如何配置节点服务器和浏览器同步的端口。使用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
});
});
在Mac终端,我跑
gulp
。这会打开浏览器到localhost:3006
。精细。在另一个终端窗口,从我做起,节点服务器,
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
}
});
});
答
基本上会有两台服务器在运行。一个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
}
});
});
答
browserSync.init启动服务器。 您无法将两个端口绑定到一个端口。如果需要将两台服务器一起运行,请使用不同的端口。
我明白了。我如何维护websocket连接? 连接到'ws:// localhost:3007/socket.io /?EIO = 3&transport = websocket&sid = uqjjv3tQ0dlAAAG'的WebSocket连接失败:连接在收到握手响应之前关闭 (index):28 connected! – meteorBuzz
这个工程,谢谢代理服务器的头像 gulp.task('serve',function(){ browserSync。INIT({ 端口:3007, 代理:{ 目标: “本地主机:3006”, WS:真 } }); }); – meteorBuzz
我只是想提一下!是的,如果您的服务器使用WebSockets,则需要'ws:true'。 – timolawl