Everyone connected to a channel will always receive all published messages regardless of who published them. Often, building an app with a single channel per room of users is the best way. To decipher the message publisher, you can include a sender_id
key/value with each message.
When a message is received the value of sender_id
key can be inspected to see if the message came from the subscriber - if so, then the message can be ignored by that subscriber (the publisher of the message).
NOTE: there is no requirement for a client to subscribe to a channel in order to publish on that channel.