Messages are encrypted to the receivers public key. Only the receivers private key can decrypt the message. However, everyone can see that you are messaging the receiver (both IDs are visible)
What about direct messages ?