当前位置: 首页 > article >正文

【socketioxide和axum集成-实现websocket实时通信-Rust点滴】

socketioxide的axum集成

  • 启动socketio依靠examle里的layer
  • 使用可变State依靠axum里的example
  • 提取client,IP
    • 一类是tcp,socket对方地址
    • 一类是SocketRef里socket.re_ref.
  • axum的get,or,post请求处理中使用socketRef

启动socketio依靠examle里的layer

使用可变State依靠axum里的example

使用了,Arc,这个synce机制,有加锁的办法.

提取client,IP

为了了解每个客户的在线状态,需要提取其IP.作为一个身份标识.

一类是tcp,socket对方地址

在建立服务时获得引用,依靠HTTPExtension,这是原始tcp套接字的获取,不适应docket容器,非HOST模式,和反向代理的复杂情况…

一类是SocketRef里socket.re_ref.

在代理模式下
在handle里的缺省参数,socketRef的函数req_ref(),提取到请求信息其中的request.headers,会有反向代理补充的x-forward-ip,可以在调试后确定下来.

axum的get,or,post请求处理中使用socketRef

在连接建立时,把socketRef.clone()存入,共享State.然后在get,orpost的axum route handle获取并使用.
主要用于通过url发送广播消息, 不同服务器间的消息传递.
flask–> rust,socketio->socketio client.
因为要完成flask的socketio的解耦.目前只想到了这个办法.


http://www.kler.cn/a/467653.html

相关文章:

  • VR线上展厅如何重塑展览展示新生态,引领科技潮流?
  • CSS——2.书写格式一
  • UniApp 性能优化策略
  • Java基于SSM框架的影院选座系统小程序【附源码、文档】
  • 【2024年-11月-23日-开源社区openEuler实践记录】KubeOS:云原生时代操作系统的革新力量
  • 力扣--509.斐波那契数列
  • 《Vue3实战教程》19:Vue3组件 v-model
  • 解锁unlist在网页爬取中的另类用法
  • 【开源社区openEuler实践】rust_shyper
  • 代理模式实现缓存
  • vue3 拆信封动画
  • 【OceanBase】通过 OceanBase 的向量检索技术构建图搜图应用
  • day33 多点通信
  • 卸载干净 IDEA(图文讲解)
  • 人工智能安全——大语言模型遗忘学习(LLM unlearning)与多目标优化算法
  • 32单片机从入门到精通之软件编程——中断处理(九)
  • Spring Boot 3 实现 MySQL 主从数据库之间的数据同步
  • 手搓人工神经网络
  • Introducing Optimization
  • 基于生成式对抗网络(GAN)的前沿研究与应用