来自另一台计算机的反映的客户端操作

我在我的新博客上工作,现在服务器端是NodeJS使用expressjs ),我将服务器托pipe在我的电脑上。

为了快速发展,我正在使用GulpJS。

在我解释奇怪的事之前。 让我说这两个端口( 3000和80是开放的 )。

  • Gulp版本: 3.9.0
  • 0.10.35版本: 0.10.35
  • 浏览器同步: 2.7.12

这是我的index.js ,我使用node index.js来启动服务器。

 var express = require('express'); var app = express(); app.use(express.static('public')); app.set('base', '/public'); app.get('/', function(req, res) { res.sendfile('index.html'); }); var server = app.listen(80, function() { var host = server.address().address; var port = server.address().port; console.log('Example app istening at http://%s:%s', host, port); }); 

现在这是我使用的gulpfile.js的重要部分(为简单起见,我删除了大部分任务):

 var sync = require("browser-sync").create(); gulp.task('browser-sync', function() { sync.init({ proxy: "http://localhost:80", browser: "chrome", port: 3000 }); }); 

所以在我的博客上工作了一段时间之后,我决定把它展示给朋友,而NodeJS服务器正在运行, Gulp正在监视一些htmljssass文件,我把我的domain.ml:3000发送给我的朋友,该域指向我的外部IP,端口3000是由于通过gulpfile.js定义的代理。

我无法解释的奇怪的事情:

当我的朋友玩这个网站时,他的行为反映给我,这意味着我们都访问了domain.ml:3000当他点击src属性设置为#的链接时, 的url变成了domain.ml:3000/# ,我也有一个链接,当点击打开一个标签(过渡是由一些js + css转换 ),再次当标签打开他的一面,它也打开在我身边

我想这是与browser-sync代理的东西,但我不能解释也不理解这种行为,如果任何人都可以帮助我的数字,我会非常感激,有一个愉快的一天。

这是交易,浏览器同步通过你的代理发送哈希链接到你的服务器(当你点击链接'#')该片段有一个不同的待遇。

端口80上的服务器现在是从您的浏览器同步会话中重放所有URL的木偶,您同时在浏览器同步端口3000上连接,当其中一个发送哈希更改时,您在服务器上都收到新的位置港口:80现在也有了新的位置。

这基本上是浏览器同步的意思。 您可以同步浏览器以同时testing相同的应用程序。 一旦你做了一个吞噬的构build和服务,而不是你的“开发版本”,这将会改变。