Rust websocket 客户端实现

目前rust websocket文档较少,最近为了实现部分工作需要使用rust去做websocket链接网上找了不少,很多没有太多参考价值,websocket 在rust中要保持长连接,期间需要不停的去ping,不然会中断,但是使用线程在常规情况下闭包又无法在循环数据的时候持续的ping,所以引入了一下第三方包。

Cargo.toml
[dependencies]
tokio = { version = "1.19.2", features = ["rt", "rt-multi-thread", "macros"] }
websockets= "0.3.0"
futures = "0.3.21"

main.rs

use std::thread;
use std::time::Duration;
use websockets::{WebSocket, WebSocketWriteHalf};#[tokio::main]
async fn main() {// 建立websocket连接let mut ws = WebSocket::connect("wss://xxxxxxx").await.unwrap();let (mut r, mut w) = ws.split();let send_str = "你想提交的内容";w.send_text(send_str.to_string()).await.unwrap();// 定期推送ping,如果想改这里自己建立信息通讯mpsc::channel(0) 发送不同的数据;thread::spawn(move || {loop {// 这里因为是async自己包裹一下不然跑步起来tokio::runtime::Builder::new_multi_thread().enable_all().build().unwrap().block_on(async {// 睡眠定期推送数据thread::sleep(Duration::new(20, 0));w.send_text("ping".parse().unwrap()).await.unwrap();});}});// 循环打印数据loop {let s = r.receive().await.unwrap();let (ss, b, snake_case) = s.as_text().unwrap();println!("Got:{}", ss);}
}

Rust websocket 客户端实现相关推荐

  1. netty websocket客户端_Websocket操作字节序 之 服务端

    Websocket在JavaScript中操作字节序 之 客户端 在上一篇文章中,把页面的websocket编码写好了,那么服务端又该如何实现呢?由于该文是在上上篇demo中修改的,所以不全的代码还请 ...

  2. 火币网行情获取的websocket客户端

    从验证结果看应该是网络关闭了,不过程序写的不错,可以作为其它websocket客户端的测试程序 # !/usr/bin/env python # -*- coding: utf-8 -*- # aut ...

  3. c++ websocket客户端_你要的websocket都在这,收好不谢~~~

    此号已经沉寂多时,似乎已经忘了上一次更新是什么时候了!这一次重拾旧爱,希望能够一直保持下去,坚持写作,快乐你我他 今天的主题是websocket,相信搞研发的兄弟对websocket并不陌生,都202 ...

  4. webscoket绑定php uid,Think-Swoole之WebSocket客户端消息解析与使用SocketIO处理用户UID与fd关联...

    WebSocket 客户端消息的解析 前面我们演示了当客户端连接服务端,会触发连接事件,事件中我们要求返回当前客户端的 fd.当客户端发送消息给服务端,服务端会根据我们的规则将消息发送给指定 fd 的 ...

  5. 基于Boost::beast模块的异步WebSocket客户端

    基于Boost::beast模块的异步WebSocket客户端 实现功能 C++实现代码 实现功能 基于Boost::beast模块的异步WebSocket客户端 C++实现代码 #include & ...

  6. 基于Boost::beast模块的协程WebSocket客户端

    基于Boost::beast模块的协程WebSocket客户端 实现功能 C++实现代码 实现功能 基于Boost::beast模块的协程WebSocket客户端 C++实现代码 #include & ...

  7. 基于Boost::beast模块的同步WebSocket客户端

    Boost:基于Boost::beast模块的同步WebSocket客户端 实现功能 C++实现代码 实现功能 基于Boost::beast模块的同步WebSocket客户端 C++实现代码 #inc ...

  8. netty系列之:使用netty搭建websocket客户端

    文章目录 简介 浏览器客户端 netty对websocket客户端的支持 WebSocketClientHandshaker WebSocketClientCompressionHandler net ...

  9. c++ websocket客户端_python测试开发django81.dwebsocket实现websocket

    前言 HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息. WebSocket 协议它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是 ...

最新文章

  1. mysql 面试知识点笔记(二)查询优化及索引越多越好吗?
  2. sealos kubernetes(k8s)高可用安装教程
  3. 51. N-Queens
  4. SAP CRM enterprise search index调试细节
  5. JavaFX移动应用程序最佳实践,第2部分
  6. select怎么设置默认值_20200817:详细说下数据倾斜怎么解决?
  7. 能发出调子的c语言程序,求关于单片机的电子琴C程序
  8. php http agent,PHP通过http头user-agent判断是否为手机浏览器
  9. 财务有必要学python吗-python在财务里面有用吗
  10. 扩展 MongoDB.Driver 支持实体
  11. cocos2d-x-2.2.1环境搭建
  12. 19年4月超星尔雅《移动互联网时代的信息安全与防护》期末考试参考答案(94分)
  13. CString和LPVOID的转换(线程参数传递)
  14. 计算机实习生听课记录,实习生听课记录
  15. 【实习日报】2019年6月上半月 前端开发实习工作日报汇总
  16. ElementUI(1):很好的前端开发框架
  17. win10关闭系统更新后,还会提示更新
  18. Nature综述:农业生态系统中的土壤结构和微生物组功能
  19. ffmpeg入门篇-ffmpeg是怎么转码的?
  20. 人生若只如初见时[收藏]

热门文章

  1. VB / VBA 自制二维码小工具
  2. SPA与MPA的区别
  3. android各个版本的新特性
  4. 使用云主机,我们可以做哪些事情
  5. 获取电商网站主图和详情图的浏览器插件
  6. 浏览器用什么电商插件好?
  7. 彩色图像自动色阶调整和自动对比度调整
  8. Speedoffice(word)如何设置分栏
  9. 电脑系统怎么重装win11
  10. 写给还在迷茫中的朋友,一名6年程序员的工作感悟!!!