browsersync简单使用和原理分析
1. 静态文件模式
browser-sync start --server --files "css/*.css" "*.html"
2. 代理模式
browser-sync start --proxy "localhost" --files "*.php" "css/*.css"
在浏览器中输入http://192.168.0.103:3000/test.php, 浏览器所在的机器的ip为 192.168.0.100
在browsersync运行的机器上使用netstat查看3000端口的连接情况,得到如下图
Window下通过资源管理器查看到是chrome进行的连接
原理:浏览器请求到达192.168.0.103:3000端口时, node此时相当于一个反向代理,node会向localhost:80获取内容,然后再添加一段javascript代码,如下
然后,javscript代码打开tcp通道和node保持链接,当对方有动作时,通过这个打开的通道发送通知,例如当node检测到文件有改动了,会通过tcp通道通知浏览器刷新; 当javascript代码检查到浏览器有可以上报的动作时(例如屏幕滚动),会通过这个tcp通道上报给node,由node分发给其它终端,从而实现多终端屏幕同时滚动
通过wireshark抓包验证
- wireshark 抓包过滤规则写:
tcp port 3000
- 在web服务器编辑test.php,然后保存
wireshark中看到这么一条tcp消息(第11个包)
浏览器从第12个包开始,重新刷新内容
browsersync简单使用和原理分析的更多相关文章
- 分布式文件存储:FastDFS简单使用与原理分析
引言 FastDFS 属于分布式存储范畴,分布式文件系统 FastDFS 非常适合中小型项目,在我接手维护公司图片服务的时候开始接触到它,本篇文章目的是总结一下 FastDFS 的知识点. 用了 2 ...
- Spring Cloud之负载均衡组件Ribbon原理分析
目录 前言 一个问题引发的思考 Ribbon的简单使用 Ribbon 原理分析 @LoadBalanced 注解 @Qualifier注解 LoadBalancerAutoConfiguration ...
- tomcat原理分析与简单实现
tomcat原理分析与简单实现 https://blog.csdn.net/u014795347/article/details/52328221 2016年08月26日 14:48:18 卫卫羊习习 ...
- Shiro框架 (原理分析与简单实现)
Shiro框架(原理分析与简单实现) 有兴趣的同学也可以阅读我之前分享的:Java权限管理(授权与认证)CRM权限管理 (PS : 这篇博客里面的实现方式没有使用框架,完全是手写的授权与认证,可以 ...
- vue2.0 双向绑定原理分析及简单实现
Vue用了有一段时间了,每当有人问到Vue双向绑定是怎么回事的时候,总是不能给大家解释的很清楚,正好最近有时间把它梳理一下,让自己理解的更清楚,下次有人问我的时候,可以侃侃而谈. 一.首先介绍Obje ...
- Java NIO使用及原理分析(1-4)(转)
转载的原文章也找不到!从以下博客中找到http://blog.csdn.net/wuxianglong/article/details/6604817 转载自:李会军•宁静致远 最近由于工作关系要做一 ...
- 原子类java.util.concurrent.atomic.*原理分析
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...
- Camel运行原理分析
Camel运行原理分析 以一个简单的例子说明一下camel的运行原理,例子本身很简单,目的就是将一个目录下的文件搬运到另一个文件夹,处理器只是将文件(限于文本文件)的内容打印到控制台,首先代码如下: ...
- NOR Flash擦写和原理分析
NOR Flash擦写和原理分析 1. NOR FLASH 的简单介绍 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直 ...
随机推荐
- php open_basedir的使用与性能分析
php open_basedir的使用与性能分析 使用方法 <pre>/*限制打开的目录*/ini_set('open_basedir', __DIR__.'/');</pre> ...
- Evaluating Automatically Generated timelines from the Web (paper1)
摘要: 问题:There is a need that 以一个更全面/更综合的方式来展现搜索结果.对此,作者正在开发一个系统,called “Cronopath”,这个系统将产生一个时间线,通过决定每 ...
- 数据库数据生成Excel表格(多用在导出数据)
最近在项目开发中遇到这样一个需求,用户聊天模块产品要求记录用户聊天信息,但只保存当天的,每天都要刷新清空数据,但聊天记录要以Excel的形式打印出来,于是就引出了将数据库的数据导出成Excel表格的需 ...
- 第三坑:jar包编译版本
这个是之前往was上发应用的时候踩的一个坑,当时我们知道was的jdk版本是1.6,然后我们是用1.7的jdk,编译版本选的是1.6,然后放上去不对,我们以为是编译的问题,然后又下载了1.6的jdk, ...
- java的简单工厂模式
目录 代码讲解 UML图解简单工厂 优点 缺点: 改进: 代码讲解 产品功能接口: /** * 定义接口,抽象出产品都具有的功能 */ interface Produce { void method( ...
- c++语法笔记(中)
继承与派生 继承面向对象程序设计4个主要特征:抽象,封装,继承,多态性c++通过继承实现可重用性.有时两个类的内容基本相同或有一部分相同,这时可以利用原来声明的类作为基础,再加上新的内容即可,减少了工 ...
- hdu 6208 上一个kmp模板
#include <cstdio> #include <cstring> #include <iostream> #include <queue> #i ...
- linux之find的使用
基本语法 find [查找目录] [选项] [查找规则] [查找完后的操作] 即:find pathname -option -condition [-print -exec -ok …] 选项参数 ...
- SIP:100rel 扩展
SIP:100rel 扩展 100rel扩展即是对中间状态响应的确认(即1xx的响应码).原先在sip里,只有针对invite请求的200ok响应才会有ack,那么当中间状态响应携带重要的会话参数信息 ...
- js中this关键字用法详解
1.全局环境中的this 在全局环境中,this 指向全局对象Global,即 window 对象 如: alert(this); // 显示 [object Window] alert(this = ...