使用gRPC的stream向用户端实时传送信息的坑

  • 时间:2020-04-24 19:48 作者:拎着激光炮的野人 来源: 阅读:783
  • 扫一扫,手机访问
摘要:最近项目使用gRPC来实现PC端和手机的双向通讯, 我要把PC端的状态持续的发送给移动端 但是遇到一个问题在client端不能及时收到server端发送的stream的信息, 往往要client主动write后, client端才能及时收到相关的信息。后来查了一下, 找到了相似的问题https://

最近项目使用gRPC来实现PC端和手机的双向通讯, 我要把PC端的状态持续的发送给移动端 但是遇到一个问题
在client端不能及时收到server端发送的stream的信息, 往往要client主动write后, client端才能及时收到相关的信息。
后来查了一下, 找到了相似的问题
https://stackoverflow.com/questions/58299740/how-can-i-receive-data-on-client-side-before-calling-end-on-the-server-side-f
但是这个地方并没有给出处理方案,
去查文档
https://nodejs.org/api/stream.html#stream_class_stream_writable

终于找到理解决方案:

stream.cork();stream.write('some ');stream.write('data ');process.nextTick(() => stream.uncork());

当然, 我后来发现, 假如我不调用cork, 只需在nextTick中调用即可以实现flush的功能


以上来纪念我4月15日的半天光影。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】Linux 安全审计工具 Auditd(2025-12-08 23:24)
【系统环境|】使用Supervisor守护PHP进程:告别手动重启,实现自动化运维(2025-12-08 23:24)
【系统环境|】golang高性能日志库zap的使用(2025-12-08 23:24)
【系统环境|】MySQL主从复制技术详解(2025-12-08 23:24)
【系统环境|】华为MagicBook锐龙版双系统折腾记六:matlab(2025-12-08 23:24)
【系统环境|】ArrayFire:C++高性能张量计算的极速引擎(2025-12-08 23:24)
【系统环境|】一文读懂回声消除(AEC)(2025-12-08 23:23)
【系统环境|】缺人!泰达这些企业招聘!抓紧!(2025-12-08 23:23)
【系统环境|】RS485 Modbus 超级简单轮询程序(2025-12-08 23:23)
【系统环境|】RS485接口≠Modbus协议!工业通信常见认知陷阱(2025-12-08 23:23)
手机二维码手机访问领取大礼包
返回顶部