#socket-io #host-port #io-emitter #socketio-emitter

socketio-rust-emitter

socketio-emitter 的 Rust 实现

2 个版本

0.1.2 2019 年 5 月 23 日
0.1.0 2019 年 5 月 23 日

#6 in #socketio

每月38次下载

MIT 协议

8KB
126 代码行

socketio-rust-emitter

Build Status socketio-rust-emitter at crates.io socketio-rust-emitter at docs.rs

socket.io-emitter 的 Rust 实现。

使用方法

use chrono::Utc;
use std::thread;
use std::time::Duration;

let io = Emitter::new("127.0.0.1");
let _ = thread::spawn(move || loop {
    thread::sleep(Duration::from_millis(5000));
    io.clone().emit(vec!["time", &format!("{}", Utc::now())]);
}).join();
// Different constructor options.

//1. Initialize with host:port string
let io = Emitter::new("localhost:6379")
// 2. Initlize with host, port object.
let io = Emitter::new(EmitterOpts {
    host: "localhost".to_owned(),
    port: 6379,
    ..Default::default()
});

示例

let io = Emitter::new(EmitterOpts { host: "127.0.0.1".to_owned(), port: 6379, ..Default::default() });

// sending to all clients
io.clone().emit(vec!["broadcast", /* ... */]);

// sending to all clients in "game" room
io.clone().to("game").emit(vec!["new-game", /* ... */]);

// sending to individual socketid (private message)
io.clone().to(<socketid>).emit(vec!["private", /* ... */]);

let nsp = io.clone().of("/admin");

// sending to all clients in "admin" namespace
nsp.clone().emit(vec!["namespace", /* ... */]);

// sending to all clients in "admin" namespace and in "notifications" room
nsp.clone().to("notifications").emit(vec!["namespace", /* ... */]);

依赖项

~7MB
~159K SLoC