从不同的计算机反映客户端操作

时间:2015-06-30 18:31:34

标签: javascript node.js gulp

我正在开发我的新博客,目前服务器端是NodeJS(使用expressjs ),我在我的计算机上托管服务器。

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

在我解释奇怪的之前。我想说两个端口( 3000和80都是打开的)。

  • Gulp版本:3.9.0
  • NodeJS版本: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正在关注某些html,{{ 1}}和js文件,我将sass发送给我的朋友,域指向我的外部IP,端口domain.ml:3000是由{{1}定义的代理所致}。

奇怪的是我无法解释:

当我的朋友在网站上玩时,他的行为反映在我身上,这意味着当他点击3000属性设置为{{}的链接时,我们都访问了gulpfile.js 1}},在我的身边,网址已更改为domain.ml:3000,我还有一个链接,点击后会打开一个标签(转换是由某些 js + css过渡)并且当他的身边上的标签打开时,它也会在我的身边上打开。

我认为它与src代理有关,但我无法解释或理解这种行为,如果有人能帮助我解决它,我会非常感激,祝你有个美好的一天。

2 个答案:

答案 0 :(得分:3)

这基本上就是浏览器同步的意思。您可以同步浏览器以同时测试同一个应用。一旦你制作了一个gulp构建并提供该构建,而不是你的开发版本,那将会改变。

答案 1 :(得分:2)

这是交易,浏览器同步通过您的代理将哈希网址发送到您的服务器(当您点击带有'#'的链接时)该片段的处理方式有所不同。

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