Make message handling more synchronous and fill history on portal create

This commit is contained in:
Tulir Asokan
2019-05-21 23:44:14 +03:00
parent adc7257490
commit 6f2a51410f
14 changed files with 198 additions and 64 deletions

View File

@ -35,7 +35,7 @@ type MessageRevocation struct {
func (ext *ExtendedConn) HandleRawMessage(message *proto.WebMessageInfo) {
protoMsg := message.GetMessage().GetProtocolMessage()
if protoMsg.GetType() == proto.ProtocolMessage_REVOKE {
if protoMsg != nil && protoMsg.GetType() == proto.ProtocolMessage_REVOKE {
key := protoMsg.GetKey()
deletedMessage := MessageRevocation{
Id: key.GetId(),
@ -48,7 +48,12 @@ func (ext *ExtendedConn) HandleRawMessage(message *proto.WebMessageInfo) {
if !ok {
continue
}
mrHandler.HandleMessageRevoke(deletedMessage)
if ext.shouldCallSynchronously(mrHandler) {
mrHandler.HandleMessageRevoke(deletedMessage)
} else {
go mrHandler.HandleMessageRevoke(deletedMessage)
}
}
}
}