SockJS server for for Actix framework.
Actix SockJS is licensed under the Apache-2.0 license.
To use sockjs
, add this to your Cargo.toml
:
toml
[dependencies]
sockjs = "0.1"
```rust extern crate actix; extern crate actix_web; extern crate sockjs;
use actix_web::; use actix::prelude::; use sockjs::{Message, Session, CloseReason, SockJSManager, SockJSContext};
struct Chat;
/// SockJSContext
context is required for sockjs session
impl Actor for Chat {
type Context = SockJSContext
/// Session has to implement Default
trait
impl Default for Chat {
fn default() -> Chat { Chat }
}
/// Sockjs session trait
impl Session for Chat {
fn opened(&mut self, ctx: &mut SockJSContext
/// Session has to be able to handle sockjs::Message
messages
impl Handler
fn main() { let sys = actix::System::new("sockjs-chat");
// SockJS sessions manager
let sm: SyncAddress<_> = SockJSManager::<Chat>::start_default();
HttpServer::new(
Application::default("/")
// register SockJS application
.route_handler(
"/sockjs/", sockjs::SockJS::<Chat, _>::new(sm.clone())))
.serve::<_, ()>("127.0.0.1:8080").unwrap();
Arbiter::system().send(msgs::SystemExit(0));
let _ = sys.run();
} ```