This commit is contained in:
bobbydigitales
2024-10-07 00:24:22 -07:00
parent 2236ff0e6d
commit ac6846613a
7 changed files with 252 additions and 102 deletions

24
main.go
View File

@@ -77,7 +77,7 @@ func removePeer(peerID string, peer *Peer) {
for userID, peers := range userPeers {
delete(peers, peerID)
if len(peers) == 0 {
delete(userPeers, userID)
delete(userPeers, userID) // not safe need mutex
}
}
@@ -114,13 +114,13 @@ func handleWebSocket(w http.ResponseWriter, r *http.Request) {
for {
_, message, err := conn.ReadMessage()
if err != nil {
log.Println("ReadMessage error:", err)
log.Println("ReadMessage error:", err, connectionPeers[conn])
break
}
peer.lastActive = time.Now()
fmt.Println("ws<-", connectionPeers[conn], ":", string(message[:min(80, len(message))]))
// fmt.Println("ws<-", connectionPeers[conn], ":", string(message[:min(80, len(message))]))
response, err := dispatchMessage(message, peer)
@@ -158,7 +158,7 @@ func writePump(peer *Peer) {
return
}
peer.conn.SetWriteDeadline(time.Now().Add(writeWait))
fmt.Println("ws->", connectionPeers[peer.conn], ":", string(message[:min(80, len(message))]))
// fmt.Println("ws->", connectionPeers[peer.conn], ":", string(message[:min(80, len(message))]))
err := peer.conn.WriteMessage(websocket.TextMessage, message)
if err != nil {
@@ -195,7 +195,9 @@ func handleHello(message []byte, peer *Peer) ([]byte, error) {
var m struct {
Type string `json:"type"`
UserID string `json:"user_id"`
UserName string `json:"user_name"`
PeerID string `json:"peer_id"`
PeerName string `json:"peer_name"`
KnownUsers []string `json:"known_users"`
}
@@ -203,7 +205,7 @@ func handleHello(message []byte, peer *Peer) ([]byte, error) {
return nil, err
}
// log.Printf("Received hello from peer: %s, user:%s", m.PeerID, m.UserID)
log.Printf("Received hello from peer %s:%s, user %s:%s", m.PeerID[0:5], m.PeerName, m.UserID[0:5], m.UserName)
if userPeers[m.UserID] == nil {
userPeers[m.UserID] = make(PeerSet)
}
@@ -238,10 +240,12 @@ func handlePeerMessage(message []byte, peer *Peer) ([]byte, error) {
}
type PeerMessage struct {
Type string `json:"type"`
From string `json:"from"`
To string `json:"to"`
Message InnerMessage `json:"message"`
Type string `json:"type"`
From string `json:"from"`
FromUserName string `json:"from_username"`
FromPeerName string `json:"from_peername"`
To string `json:"to"`
Message InnerMessage `json:"message"`
}
var m PeerMessage
@@ -249,7 +253,7 @@ func handlePeerMessage(message []byte, peer *Peer) ([]byte, error) {
return nil, err
}
fmt.Printf("peer message type %s from %s to %s with message length %d\n", m.Message.Type, m.From, m.To, len(message))
fmt.Printf("peer message type %s from %s:%s:%s to %s with message length %d\n", m.Message.Type, m.From[0:5], m.FromPeerName, m.FromUserName, m.To[0:5], len(message))
toPeer := peerConnections[m.To]