Acknlowedgements
This commit is contained in:
parent
d58b1545e3
commit
fcada3123a
|
@ -26,6 +26,10 @@ func IncomingListener(callback func(*gobjects.Message)) {
|
|||
Image: cwutil.RandomProfileImage(e.Data[event.RemotePeer]),
|
||||
Timestamp: ts,
|
||||
})
|
||||
the.Peer.PeerWithOnion(e.Data[event.RemotePeer])
|
||||
if e.Data[event.Data] != "ack" {
|
||||
the.Peer.SendMessageToPeer(e.Data[event.RemotePeer], "ack")
|
||||
}
|
||||
case event.NewMessageFromGroup://event.TimestampReceived, event.TimestampSent, event.Data, event.GroupID, event.RemotePeer
|
||||
ts, _ := time.Parse(time.RFC3339Nano, e.Data[event.TimestampSent])
|
||||
callback(&gobjects.Message{
|
||||
|
|
|
@ -27,7 +27,7 @@ func andHisBlackAndWhiteCat(incomingMessages chan gobjects.Letter) {
|
|||
m := <-incomingMessages
|
||||
the.Peer.PeerWithOnion(m.To)
|
||||
log.Debugf("sending message!")
|
||||
id := the.Peer.SendMessageToPeer(m.To, m.Message)
|
||||
the.AcknowledgementIDs[id] = m.MID
|
||||
the.AcknowledgementIDs[m.To] = append(the.AcknowledgementIDs[m.To], m.MID)
|
||||
the.Peer.SendMessageToPeer(m.To, m.Message)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,13 +75,19 @@ func (this *InterfaceState) AddMessage(m *gobjects.Message) {
|
|||
this.messages[m.Handle] = make([]*gobjects.Message, 0)
|
||||
}
|
||||
|
||||
if m.Message == "ack" {
|
||||
// If an ack, swallow the message and ack from the list.
|
||||
acklist := the.AcknowledgementIDs[m.From]
|
||||
for _,ack := range acklist {
|
||||
this.parentGcd.Acknowledged(ack)
|
||||
}
|
||||
} else {
|
||||
this.messages[m.Handle] = append(this.messages[m.Handle], m)
|
||||
|
||||
if this.parentGcd.CurrentOpenConversation() == m.Handle {
|
||||
if m.FromMe {
|
||||
m.From = "me"
|
||||
}
|
||||
|
||||
this.parentGcd.AppendMessage(m.Handle, m.From, m.DisplayName, m.Message, m.Image, uint(m.MessageID), m.FromMe, m.Timestamp.Format(constants.TIME_FORMAT))
|
||||
} else {
|
||||
c := this.GetContact(m.Handle)
|
||||
|
@ -90,6 +96,8 @@ func (this *InterfaceState) AddMessage(m *gobjects.Message) {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (this *InterfaceState) GetMessages(handle string) []*gobjects.Message {
|
||||
_, found := this.messages[handle]
|
||||
if !found {
|
||||
|
|
|
@ -8,4 +8,4 @@ import (
|
|||
var CwtchApp app.Application
|
||||
var Peer libPeer.CwtchPeer
|
||||
var CwtchDir string
|
||||
var AcknowledgementIDs map[string]uint
|
||||
var AcknowledgementIDs map[string][]uint
|
||||
|
|
2
main.go
2
main.go
|
@ -33,7 +33,7 @@ func main() {
|
|||
// our globals
|
||||
gcd := gothings.NewGrandCentralDispatcher(nil)
|
||||
gcd.UIState = gothings.NewUIState(gcd)
|
||||
the.AcknowledgementIDs = make(map[string]uint)
|
||||
the.AcknowledgementIDs = make(map[string][]uint)
|
||||
gcd.OutgoingMessages = make(chan gobjects.Letter, 1000)
|
||||
|
||||
//TODO: put theme stuff somewhere better
|
||||
|
|
Reference in New Issue