@yapaofficial

Как в workerman реализовать приватность?

const div = document.querySelector("echo");
const ws = new WebSocket("ws://localhost:2346");

document.addEventListener('keydown', function(){
    ws.send(JSON.stringify("123"));
});
ws.onmessage = response => {
	let data = JSON.parse(response.data);
	console.log(data);
}


<?php
use Workerman\Worker;

require_once __DIR__ . "/vendor/autoload.php";

$wsWorker = new Worker("websocket://0.0.0.0:2346");
$wsWorker->count = 4;

$wsWorker->onConnect = function($con){
	echo "подключен";
};

$wsWorker->onMessage = function($con, $data) use ($wsWorker){
	foreach ($wsWorker->connections as $clientConnection) {
		$clientConnection->send($data);
	}
};

$wsWorker->onClose = function($con){
	echo "отключен";
};




Worker::runAll();

?>


как доработать этот код что бы сервер отвечал только тому пользователю который сделал запрос?

в общем есть авторизованый пользователь и как вывести его данные тоьлко ему, а не всем
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
const div = document.querySelector("echo");
const ws = new WebSocket("ws://localhost:2346");

document.addEventListener('keydown', function(){
    ws.send(JSON.stringify("123"));
});
ws.onmessage = response => {
  let data = JSON.parse(response.data);
  console.log(data);
}


<?php
use Workerman\Worker;

require_once __DIR__ . "/vendor/autoload.php";

$wsWorker = new Worker("websocket://0.0.0.0:2346");
$wsWorker->count = 4;

$wsWorker->onConnect = function($con){
  echo "подключен";
};

$wsWorker->onMessage = function($con, $data) {
  // Вместо отправки ответа всем подключенным пользователям отправляем его только тому, кто сделал запрос
  $con->send($data);
};

$wsWorker->onClose = function($con){
  echo "отключен";
};

Worker::runAll();
?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы