比如哈,用 tcp 写个 a/b 双方自定义的对话, a:你好我是 a ,我 xxx,我公钥是 b:收到,根据你的公钥,我的公钥是 a:根据你的公钥,收到 ... 有些对话会好几个回合,定义一个对话写一个 func ,会比较乱,而且对话类多了也不好改。 小白请问大佬们通常是如何解决这类问题的?是否有一些名词 术语 或者建议之类的我去查查。大概是这么个意思,也不知道问的对不对,铁子们别喷哈
1
xgfan 301 天前 via iPhone
TLV ?
|
2
Nazz 301 天前 via Android
直接 websocket
|
3
raw0xff OP |
4
Nazz 300 天前 via Android
看看标准库 tls 是怎么交换密钥的
|
6
oott123 300 天前 via Android
状态机
|
7
DefoliationM 300 天前
自带 ecdh ,直接拿来用就是了。
|
8
nifury 300 天前
不确定我有没有理解正确,不过在有协程的语言上挺直观的吧,应该只需要一个 func ?
send message 1 recv assert message 1 from b send messge 2 recv assert message 2 from b 一直这样下去 ws 的 onmessage 这种形式的话最多也就改成基于 counter 的 switch case ?每次收到一条消息就 count+1 |
9
iceheart 300 天前 via Android
异步的就是用状态控制握手进程;
同步就是 send,recv,send,recv... |
10
chenjia404 300 天前 via Android
定义一个消息格式,其中有一个类型字段,不同类型消息分别处理。
|
11
flyqie 300 天前
任何语言都能用状态机。。
|
12
raw0xff OP @oott123 @DefoliationM 感谢,我去查查。
@nifury 每次 onmessage 的时候都是处理当前的一条消息,不同用户不同 api 就没法儿用 count+1 了吧 @iceheart 哪里能找到的典型的写法例子? |
13
hzzhzzdogee 300 天前
你问的啥, 没看懂.
如果是如何处理连续消息, 定义 seq id 这种序列号 |
14
dayeye2006199 299 天前
状态机+1
|
15
yuan1028 299 天前
相当于自己新写一个协议?直接参考 HTTP 就完事了哈哈哈
|