mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
net.websocket: make thread safe/concurrent (#18179)
This commit is contained in:
@ -22,7 +22,7 @@ fn start_server() ! {
|
||||
}
|
||||
}
|
||||
// Make that in execution test time give time to execute at least one time
|
||||
s.ping_interval = 100
|
||||
s.set_ping_interval(100)
|
||||
s.on_connect(fn (mut s websocket.ServerClient) !bool {
|
||||
slog('s.on_connect')
|
||||
// Here you can look att the client info and accept or not accept
|
||||
@ -37,9 +37,13 @@ fn start_server() ! {
|
||||
s.on_message_ref(fn (mut ws websocket.Client, msg &websocket.Message, mut m websocket.Server) ! {
|
||||
slog('s.on_message_ref')
|
||||
// for _, cli in m.clients {
|
||||
for i, _ in m.clients {
|
||||
mut c := m.clients[i] or { continue }
|
||||
if c.client.state == .open && c.client.id != ws.id {
|
||||
for i, _ in rlock m.server_state {
|
||||
m.server_state.clients
|
||||
} {
|
||||
mut c := rlock m.server_state {
|
||||
m.server_state.clients[i] or { continue }
|
||||
}
|
||||
if c.client.get_state() == .open && c.client.id != ws.id {
|
||||
c.client.write(msg.payload, websocket.OPCode.text_frame) or { panic(err) }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user