[0.1.0] ask for recipients after message recived

This commit is contained in:
Shial 2017-08-29 19:15:16 +10:00
parent 21e19f51b0
commit efebdb46e6
1 changed files with 8 additions and 9 deletions

View File

@ -35,11 +35,12 @@ public class SLService<T: SLClient>: WebSocketService {
public func received(message: String, from: WebSocketConnection) {
do {
let message = try SLMessage(message)
var message = try SLMessage(message)
guard let clientId = from.request.urlURL.query else {
inconsonantClient(from: from, description: "Missing client id")
return
}
message.recipients = T.sendMessage(message, from: clientId)
broadcast(from: clientId, message: message)
} catch SLMessageError.badRequest {
inconsonantClient(from: from, description: "Bad data")
@ -79,13 +80,11 @@ public class SLService<T: SLClient>: WebSocketService {
}
private func broadcast(from client: String, message: SLMessage) {
if message.command == .base64Message || message.command == .textMessage {
let recipients = T.sendMessage(message, from: client)
connection.exertions({ connections in
for (_, (client: clienId, connection: connection)) in connections where recipients.contains(clienId) {
connection.send(message: message.make(client))
}
})
}
guard let recipients = message.recipients else { return }
connection.exertions({ connections in
for (_, (client: clienId, connection: connection)) in connections where recipients.contains(clienId) {
connection.send(message: message.make(client))
}
})
}
}