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