带有 Rust 服务器的 Elm websockets

Elm websockets with a Rust server

我想将 Elm 用于我的 Web 前端,将 Rust 用于服务器。但是,我 运行 遇到了一个问题,elm-socketio 的 websockets 版本不能与 rust-websocket 一起使用。据我所知,elm-socketio 的 websockets 版本为“2.0.0”(我在搜索 socketio.js 时发现了 elm-socketio 附带的字符串),而 rust-websocket 的版本为“13”。在 Rust 中,当收到不匹配的版本时会发生异常。我注释掉版本检查只是为了看看会发生什么,我明白了:

thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RequestError("Missing Sec-WebSocket-Key header")', src/libcore/result.rs:731

所以我想我的问题是这两个可以在没有大量工作的情况下相互合作吗?是否真的有 2.0.0 版的 websockets,它与 rust-websocket 所指的 RFC6455 不同(版本为“13”)吗?

似乎 socket.io 有自己的协议(参见 https://github.com/socketio/socket.io-protocol)。 这令人困惑,因为

"The socket.io protocol can be delivered over a variety of transports."

Websockets 是 socket.io 的可能传输层。 https://github.com/socketio/socket.io-protocol#transport

你需要找到一个 rust-socket.io 库。