Skip to content

Commit 6dde403

Browse files
updated communicator models
1 parent 7dc7c7c commit 6dde403

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

src/socketio_driver/communicator.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from masonite.configuration import config
2-
import json
32
import redis
43
import msgpack
54
from .models.socket_client import SocketClient
@@ -114,12 +113,22 @@ def pubsub(self):
114113
return self._client.pubsub()
115114

116115
def clients(self):
117-
client_keys = self._client.keys(pattern="mbroadcast_users:*")
118-
return [self.user(key) for key in client_keys]
116+
client_keys = self._client.keys(pattern="mbroadcast:users:*")
117+
return [self.client(key) for key in client_keys]
119118

120119
def client(self, id):
121-
client_json_string = self._client.get(id)
122-
return SocketClient(**json.loads(client_json_string))
120+
client_data = self._client.hmget(id, "userID", "address", "sessionId", "connected")
121+
if client_data is None:
122+
return None
123+
124+
userID, address, sessionID, connected = client_data
125+
126+
userID = userID.decode("utf-8") if userID is not None else None
127+
address = address.decode("utf-8") if address is not None else None
128+
sessionID = sessionID.decode("utf-8") if sessionID is not None else None
129+
connected = connected.decode("utf-8") if connected is not None else False
130+
131+
return SocketClient(userID, address, sessionID, connected == "true")
123132

124133
def authenticate(self):
125134
return True
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
from ..models.socket_client import SocketClient
22

3-
43
class Communicator:
54
def clients() -> list[SocketClient]:
65
"""Returns a list of all clients."""
76
...
8-
97
def client(id: str) -> SocketClient | None:
108
"""Returns a client by id."""
119
...

src/socketio_driver/models/socket_client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
@dataclass
55
class SocketClient:
6-
id: str
7-
name: str
6+
userID: str
87
address: str
8+
sessionID: str
9+
connected: bool

tests/integrations/app/controllers/WelcomeController.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
from masonite.views import View
33
from masonite.controllers import Controller
44
from masonite.broadcasting import Broadcast
5+
from src.socketio_driver.facades import Communicator
56

67

78
class WelcomeController(Controller):
89
"""WelcomeController Controller Class."""
910

1011
def show(self, view: View, broadcast: Broadcast):
12+
users = Communicator.clients()
13+
print(users)
1114
return view.render("welcome")
1215

1316
def broadcast(self, view: View, broadcast: Broadcast):

0 commit comments

Comments
 (0)