aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
index 94d9b04..07ceed3 100644
--- a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
+++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py
@@ -266,6 +266,9 @@ class WebRTCPeerSession:
def _do_chat_message(self, msg: dict) -> None:
chat_store = self._ctx.get("chat_store")
payload = msg.get("payload", "")
+ sender_name = msg.get("sender_name", "")
+ if sender_name:
+ self._ctx.setdefault("_user_names", {})[self._user_id] = sender_name
if chat_store:
raw = payload.encode() if isinstance(payload, str) else payload
asyncio.ensure_future(chat_store.save_message(
@@ -280,6 +283,7 @@ class WebRTCPeerSession:
"type": MNP.CHAT_MESSAGE,
"v": MNP_VERSION,
"sender_id": msg.get("sender_id", self._user_id),
+ "sender_name": sender_name,
"payload": payload,
"thread_id": msg.get("thread_id"),
"timestamp": __import__("time").time(),
@@ -309,6 +313,7 @@ class WebRTCPeerSession:
async def _send_chat_history(self, chat_store, since: float, limit: int) -> None:
msgs = await chat_store.get_messages(since=since, limit=limit)
+ names = self._ctx.get("_user_names", {})
self._send({
"type": MNP.CHAT_HISTORY_RESPONSE,
"v": MNP_VERSION,
@@ -316,6 +321,7 @@ class WebRTCPeerSession:
{
"id": m.id,
"sender_id": m.sender_id,
+ "sender_name": names.get(m.sender_id, ""),
"payload": m.payload.decode("utf-8", errors="replace")
if isinstance(m.payload, bytes) else m.payload,
"timestamp": m.timestamp,