D
в Mojolicious на POST приходит реквест с json данными
Мне нужно эти данные броадкастом разослать в вебсокете.
Как провернуть этот обмен данными между POST и WS?
(как из post вызвать send вебсокета)
Size: a a a
D
AH
# регистрируем клиентов при подключении
my $clients = {};
websocket '/echo' => sub {
my $self = shift;
app->log->debug(sprintf 'Client connected: %s', $self->tx);
my $id = sprintf "%s", $self->tx;
$clients->{$id} = $self->tx;
$self->on(finish => sub {
app->log->debug('Client disconnected');
delete $clients->{$id};
});
};
# на POST рассылаем по сохранённым клиентах
post '/broadcast' => sub {
my $self = shift;
my $msg = getMessageFromPayload(...)
for (keys %$clients){
$clients->{$_}->send({json => {
hms => $dt->hms,
text => $msg,
}});
}
}
D
AK
# регистрируем клиентов при подключении
my $clients = {};
websocket '/echo' => sub {
my $self = shift;
app->log->debug(sprintf 'Client connected: %s', $self->tx);
my $id = sprintf "%s", $self->tx;
$clients->{$id} = $self->tx;
$self->on(finish => sub {
app->log->debug('Client disconnected');
delete $clients->{$id};
});
};
# на POST рассылаем по сохранённым клиентах
post '/broadcast' => sub {
my $self = shift;
my $msg = getMessageFromPayload(...)
for (keys %$clients){
$clients->{$_}->send({json => {
hms => $dt->hms,
text => $msg,
}});
}
}
AK
AH
AS
# регистрируем клиентов при подключении
my $clients = {};
websocket '/echo' => sub {
my $self = shift;
app->log->debug(sprintf 'Client connected: %s', $self->tx);
my $id = sprintf "%s", $self->tx;
$clients->{$id} = $self->tx;
$self->on(finish => sub {
app->log->debug('Client disconnected');
delete $clients->{$id};
});
};
# на POST рассылаем по сохранённым клиентах
post '/broadcast' => sub {
my $self = shift;
my $msg = getMessageFromPayload(...)
for (keys %$clients){
$clients->{$_}->send({json => {
hms => $dt->hms,
text => $msg,
}});
}
}
AK
AK
AH
AK
AS
AH
AK
AK
c
AP
AP
AK
AK