家里的宽带固网用上公网IP,可以方便修改域名指向推送,接入微信网页开发。笔记本却提出新的问题:一旦出门在外,环境失效。
依然需要一个单独的开发测试域名,通过固定的公网服务器,内网穿透到开发环境,保证这个渠道可以随时工作。目前,这个方案最成熟的是开源 Ngrok。
大致流程如下:
家里的宽带固网用上公网IP,可以方便修改域名指向推送,接入微信网页开发。笔记本却提出新的问题:一旦出门在外,环境失效。
依然需要一个单独的开发测试域名,通过固定的公网服务器,内网穿透到开发环境,保证这个渠道可以随时工作。目前,这个方案最成熟的是开源 Ngrok。
大致流程如下:
打电话 10000 号给电信,按语音提示:中文服务-家庭客户-其他服务。
转接到人工后,要求因为监控问题需要获得公网IP,并且改为路由桥接。
电信的话服员可能会转到报障组再说一次……,然后预约维修师傅上门处理调试。
实际过程感受:
考虑到家里有个吃灰很久的树莓派2B,最近几年家电自动化发展越来越成熟,所以花了点时间,把树莓派上装好了 Home assistant,把主要过程记录一下。
主要配置如下:
1 | - A 900MHz quad-core ARM Cortex-A7 CPU |
之前看了各种关于JWT的讨论,主要集中在 Token 过期的管理、大量并发时 Token 刷新的问题等。想想问题应该不大,因为:
1、一个普通用户的客户端出现大并发应该不多;
2、少数请求前后过期刷新,后面的请求获得的 Token 会在客户端覆盖之前新获得的 Token。
所以就用最简单的办法。
除了单一页面程序 SPA(Single Page Application),小程序、原生客户端等也都适用。
在之前的开发里,我有遇到一个奇怪的小程序,在第一次授权登录以后,它总是能自动把我登录进去,而不需要我再次登录小程序。即便是我删掉这个小程序,重新进入,也是一样。
后来想了下,这大概是利用 unionid 的一致性,在小程序里获取了 unionid,然后在服务器里生成用户数据,之后就自动从服务器拉去授权数据,从而不再需要用户手动授权这个步骤(换句话说,把授权这个步骤交给小程序自动返回的 unionid 来控制)。
1、使用 ngrok 自建代理,或者购买已有的代理。
我用的是 https://www.echosite.cn/ 。http/https 各买一个回来。在控制台找到所注册域名(类似 xxx.east…) 对应的IP。
UPDATE: 后来改用了自建方法,参看:
Ngrok 反向内网穿透和微信网页开发环境
2、注册公网域名,备案。
也可以生成一个二级域名。修改域名的 A 指向,解析到刚才获取的IP。
3、设置域名
在微信公众号后台,左侧菜单最下面找到“设置-公众号设置-功能设置“里,修改业务域名、JS接口安全域名、网页授权域名。输入并保存准备好的域名。
1、代码和文件
Go 代码按照 package 来组织,只要在同一个 package 下的 function 都可以在另外一个页面里直接使用。这样最好目录名和目录里的文件第一行 package xxx 保持一致。
2、Go Mod
最新的 Go mod 管理需要把项目文件夹放到非 GOPATH 位置(基本就是自己习惯的 Workspace)。这样在 go run 的时候就会自动安装相关依赖包。依赖包还是会被安装在 GOPATH 里,没有需要不用去管。
人们倾向于在心智内部,建立外部世界的简化模型。
这样做有很多好处,特别体现在效率上:维持和运用这些模型的开销非常小,而绝大部分情况下遭遇的误差都可以忽略不计。
这就是所有古老教条和谏言的来源。
比如:万物归一。
想一想,所有的事物都可以用一来解释,这多简单。任何人都可以在接受这个模型的前提下,解释世界上所有的事物。但真的要去做一个神棍,真正的专业却不是这个,而是需要系统受训过的心理学,至少是人的各种心理反应、身体反应。
“万物归一”用一个词替换了另外一个词,且没有解决任何生活中的实际问题。于是又有人将其陆续展开,有了后来的阴阳、四象、八卦、六十四卦。稍微复杂了点,但依然是明显的简化模型。
非常难以想象 Golang 还需要这么原始的升级方式。
不过有人提供了相对简单地多的办法:
在经历八年的工作以后,终于是个机会换个环境,然后为下一个阶段加满油的时候。
然而,在长达两年的准备过程中,直到最后一刻,我才明白出国留学对我来说到底意味着什么,在这之前,我受他人和环境的影响要远大于自己的判断和决心。