receiving initial messages!
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use ewebsock::{WsReceiver, WsSender};
|
||||
use ewebsock::{WsMessage, WsReceiver, WsSender};
|
||||
|
||||
use crate::Result;
|
||||
use crate::{ClientMessage, Filter, Result};
|
||||
use std::fmt;
|
||||
use std::hash::{Hash, Hasher};
|
||||
|
||||
@@ -57,4 +57,10 @@ impl Relay {
|
||||
status,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn subscribe(&mut self, subid: String, filters: Vec<Filter>) {
|
||||
let cmd = ClientMessage::req(subid, filters);
|
||||
let txt = WsMessage::Text(cmd.to_json());
|
||||
self.sender.send(txt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@ use crate::Result;
|
||||
use tracing::error;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct PoolMessage<'a> {
|
||||
relay: &'a str,
|
||||
event: RelayEvent,
|
||||
pub struct PoolEvent<'a> {
|
||||
pub relay: &'a str,
|
||||
pub event: RelayEvent,
|
||||
}
|
||||
|
||||
pub struct RelayPool {
|
||||
relays: Vec<Relay>,
|
||||
pub relays: Vec<Relay>,
|
||||
}
|
||||
|
||||
impl Default for RelayPool {
|
||||
@@ -47,12 +47,12 @@ impl RelayPool {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn try_recv(&self) -> Option<PoolMessage<'_>> {
|
||||
pub fn try_recv(&self) -> Option<PoolEvent<'_>> {
|
||||
for relay in &self.relays {
|
||||
if let Some(msg) = relay.receiver.try_recv() {
|
||||
match msg.try_into() {
|
||||
Ok(event) => {
|
||||
return Some(PoolMessage {
|
||||
return Some(PoolEvent {
|
||||
event,
|
||||
relay: &relay.url,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user