Lots of changes
Notable ones are that now every message has a field for the target server, and that messages have an "optional" ID in that they dont have it from client -> server and they do have it from server -> client.
This commit is contained in:
+20
-2
@@ -1,7 +1,7 @@
|
||||
use crate::RoomId;
|
||||
use crate::client::ClientMessage;
|
||||
use crate::state::StatePath;
|
||||
use crate::User;
|
||||
use crate::{User,ServerAddr};
|
||||
use time::OffsetDateTime;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@@ -16,6 +16,7 @@ pub struct MessageId(u64);
|
||||
|
||||
#[derive(Serialize,Deserialize,Clone,Debug)]
|
||||
pub struct TaggedMessage {
|
||||
// How do I return message IDs
|
||||
pub message: ClientMessage,
|
||||
#[serde(with="time::serde::timestamp")]
|
||||
pub client_timestamp: OffsetDateTime,
|
||||
@@ -23,7 +24,8 @@ pub struct TaggedMessage {
|
||||
pub server_timestamp: OffsetDateTime,
|
||||
#[serde(with = "serde_bytes")]
|
||||
pub signature: Box<[u8]>,
|
||||
pub user: User
|
||||
pub user: User,
|
||||
pub target: ServerAddr
|
||||
}
|
||||
impl TaggedMessage {
|
||||
pub fn verify(&self) -> Result<bool,VerificationError> {
|
||||
@@ -42,6 +44,22 @@ pub enum Relevance {
|
||||
Post(User)
|
||||
}
|
||||
|
||||
//#[derive(Serialize,Deserialize,Clone,Debug)]
|
||||
//pub struct Message {
|
||||
// pub body: String,
|
||||
// pub room_id: RoomId,
|
||||
// pub target: ServerAddr,
|
||||
// pub message_id: MessageId,
|
||||
// #[serde(with="time::serde::timestamp")]
|
||||
// pub client_timestamp: OffsetDateTime,
|
||||
// #[serde(with="time::serde::timestamp")]
|
||||
// pub server_timestamp: OffsetDateTime,
|
||||
// #[serde(with = "serde_bytes")]
|
||||
// pub signature: Box<[u8]>,
|
||||
// pub user: User,
|
||||
//
|
||||
//}
|
||||
|
||||
//#[derive(Serialize,Deserialize,Debug,Clone)]
|
||||
//pub struct Message {
|
||||
// body: String,
|
||||
|
||||
Reference in New Issue
Block a user