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

socketioxide的axum集成

启动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的解耦.目前只想到了这个办法.

相关推荐
秦jh_11 分钟前
【Linux网络】网络套接字socket
linux·运维·服务器·网络
LUCIAZZZ2 小时前
说一下分布式组件时钟一致性的解决方案
java·网络·分布式·计算机网络·操作系统·springboot·系统设计
hgdlip3 小时前
抖音直播位置与IP属地不同?解析原因与应对策略
网络·网络协议·tcp/ip
KnowSafe3 小时前
SSL报错ERR_SSL_PROTOCOL_ERROR怎么办?
网络·网络协议·ssl
半新半旧3 小时前
keepalived高可用介绍
linux·服务器·网络
Aa美少女战士3 小时前
多域名 SSL 证书能保护多少个域名?
网络协议·http·https
开开心心就好4 小时前
手机不同App音量自动调节软件
网络·windows·python·安全·智能手机·电脑·音视频
GalaxyPokemon4 小时前
MySQL基础 [二] - 数据库基础
linux·网络·数据库·mysql
计算机鬼才~4 小时前
网络安全·第一天·IP协议安全分析
网络协议·安全·网络安全
智联视频超融合平台4 小时前
国网B接口注册流程详解以及注册失败原因(电网B接口)
网络·人工智能·后端·网络协议·安全·音视频·实时音视频