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

相关推荐
Darenm11122 分钟前
计算机⽹络及TCP⽹络应⽤程序开发
网络·网络协议·tcp/ip
qq_386322695 小时前
华为网路设备学习-32(BGP协议 七)路由反射器与联邦
网络·学习
兰雪簪轩7 小时前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
fuyongliang1238 小时前
linux Nginx服务配置介绍,和配置流程
运维·服务器·网络
GEO_YScsn9 小时前
Rust 的生命周期与借用检查:安全性深度保障的基石
网络·算法
司徒小夜10 小时前
HTTP与HTTPS杂谈-HTTPS防御了什么
网络·http·https
只因在人海中多看了你一眼10 小时前
B.50.10.09-RPC核心原理与电商应用
qt·网络协议·rpc
嫩萝卜头儿11 小时前
虚拟地址空间:从概念到内存管理的底层逻辑
linux·服务器·网络
LJC_Superman12 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
小鸟啄米12 小时前
Elixir通过Onvif协议控制IP摄像机,扩展ExOnvif的摄像头停止移动 Stop 功能
网络协议·elixir·onvif