0%

frp 是什么?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

官网 github

阅读全文 »

Vuex 是一种状态管理模式,它以一个全局单例的模式管理、共享组件的状态,任何位置的组件都能获取组件外部的状态或者触发行为。
vuex

阅读全文 »

转载:吴秦-HTTP Keep-Alive模式

1、什么是Keep-Alive模式?

我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

File:HTTP persistent connection.svg

http 1.0中默认是关闭的,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入”Connection: close “,才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep-Alive连接就看服务器设置情况。

阅读全文 »

WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容, 它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。

反向代理WebSocket

1
2
3
4
5
6
location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
阅读全文 »

转载: Flutter Widget框架概述

Flutter Widget框架概述

Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改(译者语:类似于React/Vue中虚拟DOM的diff算法)。

注意: 如果您想通过代码来深入了解Flutter,请查看 构建Flutter布局为Flutter App添加交互功能

阅读全文 »

数组

PHP数组是一个有序映射(包含基于键的值)。 它用于在单个变量中保存相似类型的多个值。

索引数组

默认情况下,所有PHP数组都会被分配索引号。

定义索引数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// 方式一
$season=array("summer","winter","spring","autumn");
// 等效于以下方式
$season=array(0=>"summer",1=>"winter",2=>"spring",3=>"autumn");

// 方式二
$season[0]="summer";
$season[1]="winter";
$season[2]="spring";
$season[3]="autumn";

// 输出方式
echo "Season are: $season[0], $season[1], $season[2] and $season[3]";
?>
阅读全文 »

开发过程中,每次打包还需要再手动把包用微信发送给运维,感觉有点麻烦。。。幸运的是,昨天我们有了网络磁盘来共享文件夹,很是方便。但能不能再方便一点呢。当然可以,这里建立一个bat脚本来自动执行。

1
2
3
4
5
6
7
8
9
10
11
12
@echo off

set TargetDir=C:\huxy\test\TargetDir
set SourceDir=C:\huxy\test\SourceDir

del /f /s /q %TargetDir%\*.*
rd /s /q %TargetDir%\

xcopy %SourceDir%\*.* %TargetDir%\ /s /e /c /y /h /r

pause

然后,每次打包后确认无误后就可以执行脚本进行同步了。如果你还想更省事,推荐把它放到windows自带的计划任务中就好了,你可以手动设置一个你需要的同步时间间隔就可以了。

数据类型

  • 标量类型
    • 布尔(boolean)
    • 整数(integer)
    • 浮点(float/double)
    • 字符串(string)
  • 复合类型
    • 数组(array)
    • 对象(object)
  • 特殊类型
    • 资源(resource)
    • 空值(null)

其中,资源(resource)保存了到外部资源的一个引用:如打开文件、数据库连接、图形画布区域等。

阅读全文 »

echo语句

PHP echo是一个语言结构(也可以叫作语句),不是一个函数,所以不需要使用括号。但是如果要使用多个参数,则需要使用括号。

执行

1
2
3
4
5
6
<?php
$message = "world";
echo
"hello
$message";

输出

1
2
hello
world

print

print是一个语言结构(因为有返回值,可以认为它是函数)。与echo不同,它总是返回1.

变量

PHP中,使用$符号和变量名(区分大小写)来声明变量。PHP是一种宽松类型的语言,因此,PHP自动将变量转换为正确的数据类型。

阅读全文 »

PHP是什么?

  • PHP代表超文本(HyperText)预处理器。
  • PHP是一种解释性语言,既不需要编译。
  • 文件以.php扩展名保存。

准备工作

  • web服务器
  • 数据库
  • PHP解析器(处理和执行PHP脚本指令)

入门示例

所有的PHP代码都在PHP标签 之间。PHP的标签语法如下:

1
2
3
<?php
// your code here
?>