5 个版本
0.2.1 | 2022 年 6 月 1 日 |
---|---|
0.2.0 | 2022 年 5 月 30 日 |
0.1.2 | 2018 年 7 月 10 日 |
0.1.1 | 2018 年 5 月 31 日 |
0.1.0 | 2018 年 5 月 26 日 |
15 在 Web 编程 中排名
每月 439 次下载
在 ux-webmachine 中使用
195KB
4.5K SLoC
Wampire 是一个异步的 Web 应用消息协议 v2 路由库、客户端库以及路由服务,实现了高级规范中的大多数功能。Wampire 项目是用 Rust 编写的,旨在进行高度并发的异步 I/O。Wampire 路由器提供扩展功能。路由器和客户端与其它 WAMP 实现进行交互。项目最初是从 wamp-rs v0.1.0 分支出来的。
WAMP 应用场景
- 请查看 examples/webrtc-simple 目录,以了解如何使用 Wampire 作为 WebRTC 连接的信号服务器。
- 释放您的代码 - 浏览器中的后端
- 物联网中的安全性
- 使用 Crossbar.io 缩放微服务
WAMP 比较
好吧。那么 WAMP 相比其他技术如何呢?
我们真的需要另一个轮子吗?是的。请阅读以下内容,了解我们为什么这样认为。
以下表格根据 六个标准 对 WAMP 与其他技术进行比较
-
发布/订阅 是否支持开箱即用的发布和订阅?
-
RPC 是否支持开箱即用的远程过程调用?
-
路由 RPC 是否支持 路由 (不仅点对点) 远程过程调用?
-
Web 原生 是否原生运行在 Web 上(无需隧道或桥接)?
-
跨语言 是否支持不同编程语言和运行时?
-
开放标准 是否有不同供应商实现的开放、官方规范?
另请参阅:物联网的 Web 技术 - 一篇包含 WAMP、MQTT、CoAP、REST、SOAP、STOMP 和 MBWS 在物联网应用中比较的硕士论文。
技术 | 发布/订阅 | RPC | 路由 RPC | Web 原生 | 跨语言 | 开放标准 |
WAMP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
AJAX | - | ✔ | - | ✔ | ✔ | - |
AMQP | ✔ | (✔) | - | - | ✔ | ✔ |
Apache Thrift | - | ✔ | - | - | ✔ | - |
Capn’n’Proto | - | ✔ | - | - | ✔ | - |
Comet | - | - | - | ✔ | ✔ | - |
OMG DDS | ✔ | - | - | - | ✔ | ✔ |
D-Bus | ✔ | ✔ | ✔ | - | ✔ | ✔ |
CORBA | ✔ | ✔ | - | - | ✔ | ✔ |
DCOM | ✔ | ✔ | - | - | ✔ | - |
Java JMS | ✔ | - | - | - | - | ✔ |
Java RMI | - | ✔ | - | - | - | ✔ |
JSON-RPC | - | ✔ | - | ✔ | ✔ | ✔ |
MQTT | ✔ | - | - | - | ✔ | ✔ |
OPC-UA | (✔) | ✔ | - | (✔) | ✔ | |
REST | - | ✔ | - | ✔ | ✔ | - |
SOAP | - | ✔ | - | ✔ | ✔ | ✔ |
socket.io | ✔ | - | - | ✔ | - | - |
SockJS | - | - | - | ✔ | ✔ | - |
STOMP | ✔ | - | - | ✔ | ✔ | ✔ |
XML-RPC | - | ✔ | - | ✔ | ✔ | ✔ |
XMPP | ✔ | - | - | ✔ | ✔ | ✔ |
ZMQ | ✔ | - | - | - | ✔ | - |
实现
为不同的语言提供了许多实现。 了解更多..
常见问题
完整文档
请参阅Wampire 项目Wiki以获取完整文档、示例和操作细节。
目前支持整个基本配置文件,以及高级配置文件中的基于模式的订阅和注册。
你可能正在寻找
目前不支持安全连接。
要将 Wampire 包含到你的项目中,请将以下内容放置在你的 Cargo.toml
文件中
[dependencies]
wampire = "0.2"
Wampire 使用 serde-rs,它需要 Rust 1.15 或更高版本。
路由器
要启动开发模式下的路由器,请使用
RUST_LOG=info cargo run wampire
Nginx 配置
要将 WebSocket 连接传递给路由器,请将其添加到 Nginx 配置中。PS. 也可以使用 SSL。
location /ws/ {
proxy_pass http://127.0.0.1:8090;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800s;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Systemd
构建路由器
- 使用以下命令克隆存储库:
git clone https://github.com/ohyo-io/wampire.git
cdwampire && cargobuild
- 将
wampire
从target
文件夹复制到/usr/local/bin
- 将
wampire.service
从dist
复制到/usr/lib/systemd/system
或/lib/systemd/system
(取决于您的系统)。
要启动服务
systemctl start wampire
要将其设置为系统服务
systemctl enable wampire
示例
请参阅示例目录。有关检查示例的说明
RUST_LOG=info cargo run --example api_user
RUST_LOG=info cargo run --example endpoint
RUST_LOG=info cargo run --example pubsubclient
高级配置文件功能支持
请参阅FEATURES以获取详细信息。
扩展功能
Wampire 提供了关于订阅者黑白名单和在会话元 API 中可用的信息的扩展功能extended functionality。
这增强了客户端对消息接收者的决策能力。
支持 Wampire
Wampire 是一个 MIT 许可的开源项目。这是一个独立项目,其持续发展完全得益于这些出色的赞助商的支持。如果您想加入他们,请考虑
许可
本作品根据 MIT 许可证授权。有关详细信息,请参阅LICENSE。
依赖项
~8–19MB
~279K SLoC