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

Avi*_*ida 7 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);
});
Run Code Online (Sandbox Code Playgroud)

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

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

所以,我的工作在我的博客,我决定把它展示给朋友过了一段时间,而NodeJS服务器正在运行,Gulp正在守护着一些html,jssass文件,我把我的domain.ml:3000给我的朋友,域名指向我的外部IP和端口3000是由于通过代理定义的代理gulpfile.js.

奇怪的是我无法解释:

当我的朋友玩网站时,他的行为反映给我,这意味着我们都访问过domain.ml:3000,当他点击src属性设置为的链接时#,在我这边更改了网址domain.ml:3000/#,我还有一个链接,点击后打开一个标签(转变是由一些由JS + CSS转换),并再次在标签上打开他的身边还打开在我的身边.

我认为这是browser-sync代理的东西,但我无法解释或理解这种行为,如果有人能帮助我解决它,我会非常感激,祝你有个美好的一天.

小智 2

事情就是这样,浏览器同步通过代理将哈希 URL 发送到服务器(当您单击带有“#”的链接时),该片段的处理方式有所不同。

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