Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ptotorpc 服务端发送消息可以头和消息体分开发送吗 #588

Closed
moujunqiang opened this issue Jul 16, 2024 · 5 comments
Closed

Comments

@moujunqiang
Copy link

您好,请教一个问题。tcpservice 在发送消息的时候可以先发送header再发送body吗 我这样使得导致客户端收不到onmessage回调,还是必须把header和body封包之后一块发送

@ithewei
Copy link
Owner

ithewei commented Jul 17, 2024

TCP是流式协议,分多少包发送都是正确情况,对方应该根据应用层协议进行组包拆包

@jixhua
Copy link

jixhua commented Jul 25, 2024

您好,请教一个问题。tcpservice 在发送消息的时候可以先发送header再发送body吗 我这样使得导致客户端收不到onmessage回调,还是必须把header和body封包之后一块发送

刚好用了一下ptotorpc,你可以理解为 [ header + body ] 才是一条完整的消息,header 主要是用来拆包和标识协议的,接收端拿到数据后自己去掉 header 就行,你要是不用自动拆包功能,就可以不加 header

@xs-411
Copy link

xs-411 commented Jul 25, 2024

您好,请教一个问题。tcpservice 在发送消息的时候可以先发送header再发送body吗 我这样使得导致客户端收不到onmessage回调,还是必须把header和body封包之后一块发送

刚好用了一下ptotorpc,你可以理解为 [ header + body ] 才是一条完整的消息,header 主要是用来拆包和标识协议的,接收端拿到数据后自己去掉 header 就行,你要是不用自动拆包功能,就可以不加 header

我有一个疑问,ptotorpc是同步非阻塞吗?

@jixhua
Copy link

jixhua commented Jul 25, 2024

ptotorpc 的 onMessage 是跑在事件循环中,可以看事件循环章节的介绍,one loop per thread,多个tcp连接共用一个io线程,是否阻塞取决于你怎么处理消息,onMessage 中你要是执行一个耗时操作,它就会阻塞当前事件循环(线程),浅薄理解,不知道是否正确

@xs-411
Copy link

xs-411 commented Aug 1, 2024

ptotorpc 的 onMessage 是跑在事件循环中,可以看事件循环章节的介绍,one loop per thread,多个tcp连接共用一个io线程,是否阻塞取决于你怎么处理消息,onMessage 中你要是执行一个耗时操作,它就会阻塞当前事件循环(线程),浅薄理解,不知道是否正确

我说的发送请求,等待响应写同步的代码,执行的是异步非阻塞IO.也可以说是协程.感受不到异步回调。

@ithewei ithewei closed this as completed Aug 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants