Sucha's Blog ~ Archive for October, 2024

24年10月27日 周日 19:21

枢纽——3000年的中国

这个大部头读了好久,主线是中华民族的发展史,以及当前取得的成就,结合地缘、历史的深入解读。

枢纽是本书强调的中心点。

和美国海权国家(英国也是),俄罗斯陆权国家(德国也是)不同,中国是海陆复合型国家(伊朗也是),我们不仅有绵长的海岸线、广阔的南海,还有这跟中亚、蒙古等国家接壤的国界线,是欧亚大陆(世界岛)的重要国家。跟深入内陆中亚的交流,几千年前就开始了。

在中国的历史上,代表草原文明、农耕文明的各民族,在不同时期作为主线,开启了属于自己的朝代。不同的王朝,都有同样的考虑,如长久的统治、稳定的社会。因此统治时,必须同时考虑草原、农耕文明。在朝代更迭的历史发展中,草原、农耕文明你争我夺,最终融合。

王朝最终是草原、农耕文明的枢纽,只有这样,才能稳定这两种不同的力量。

作为拥有绵长海岸线的国家,王朝通过海洋跟世界其他地方的联系,早就有了规模。比如马来西亚、菲律宾的华人,当年因为各种原因下南洋,还保留着华人(社会)的很多传统,说明文明的传递,其实也跨越了海洋。不过我们近代对于海洋的争斗,比较吃亏,显得海洋方面的发展,比较落后而已。

之前王朝在繁荣发展,人口膨胀后,都会陷入马尔萨斯陷阱,遇到天灾人祸,脆弱的经济将导致崩溃,人口减少后才能平衡下来。

但是膨胀的人口,却不是都坏事。比如即便清朝,跟当时的工业国——英国的贸易,一直都是顺差。

因为当时庞大的人口,使得即便非工业化的手工制造业,成本都很低。因此当时初步的工业化,对于王朝来说,并不划算,没法形成规模,导致社会本身没有强烈的动力去进行工业化。而王朝的框架结构,也没法在社会内部被突破改变,最终是外部世界输入的变化,压垮了王朝。

而作为拥有统一的法律、庞大的受教育人口、巨大内部市场的大国,在如今的工业化时代,却是优势。

比如我们工业化成体系后,对应现代供应链网络的迭代、进化非常快(必须拥有统一法律、巨大内部市场、相当规模人口的大国才可能),在逐渐进化的同时,东南亚的供应链也逐渐融入(一方面文化相距不远方便吸收,另一方面为了规避制裁换个牌其实很快),使得在东亚的制造业规模化成本、优化迭代成本,是全世界最经济的,不仅足以供应全世界。其规模竞争优势,也要远远优于世界其他地方的工业化成本。

我们每天都在进口原材料、输出最经济的工业制成品、高科技产品,在当今社会,我们就是世界经济运转的枢纽。

24年10月12日 周六 16:19

WebSocket(2)

之前版本的 cincau 是一个 MVC 模式的 HTTP server,内部认为一个业务逻辑单元(controller、或 page)可以匹配多个 URL 数据请求,一次 URL 请求将抽象为一个 request 实例给 controller 处理,controller 将 response 对应的 HTML,而 model 层则是 SVR 内部数据源的抽象。

所以 cincau 的 request 是一次 HTTP URL 请求的数据集合,比如请求的 method、path,header key/value 数据。

但后续 cincau 将支持 WebSocket,本来 WS 也是 HTTP upgrade 而来,只是 WS 是长连接,在 cincau 内部,希望继续复用已有的 MVC 模式,复用之前的 request 结构,并且,WS 和 HTTP 共用一个端口号。

大体上没什么问题的,在框架设计上,可以特例 HTTP 为仅有一帧的 frame,并指定专用的 frame type,而 WS 可能一次带有多帧,区分 PING、PONG、TXT、BINARY 的 frame type。

但作为长连接的 WS,跟 HTTP 的最大的不同,在于

以上两点,都将复用提供 request 给 controller 的函数(参数不变,但不同状态下 request 带有不同的标记),比如使用 isPeer() 区分是 CNT 请求过来的,还是 SVR 主动触发的,以及使用 isDisconnect() 来区分 CNT 是已建立链接,还是掉线了(可能是 CNT 的 TCP 主动断开,或者 SVR PING 后一定时间内未收到 PONG 回应,SVR 主动 close 了 TCP 导致)。

大概是上面这样的想法,感觉应该可行。

然后在 cincau 增加了 WebSocket 的相关 demo,实现了一个简陋的聊天室。