PHP Ratchet WAMP транслирует подписчикам на мероприятии PublishPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP Ratchet WAMP транслирует подписчикам на мероприятии Publish

Сообщение Anonymous »

Я разрабатываю веб -приложение, где мне нужно поведение в реальном времени для следующего сценария,
Приложение будет иметь два типа пользователей Player и Spectator . Игроки могут присоединиться к игровой игре, в то время как зрители могут просто представить. Конечно, это должно быть смыслом в реальном времени, когда игрок отключается или новый игрок присоединяется к игровому зрителю, видит список реального времени.Spectator_1 joins Clan_101
Spectator_2 joins Clan_201

Player_1 joins Clan_101 // Need to broadcast this event to Spectator_1
Player_2 joins Clan_101 // Need to broadcast this event to Spectator_1
Player_1 disconnects Clan_101 // // Need to broadcast this event to Spectator_1

Player_11 joins Clan_201 // Need to broadcast this event to Spectator_2
Player_12 joins Clan_201 // // Need to broadcast this event to Spectator_2


Рассматривая постоянную игру как тему/канал (Ratchet\Wamp\Topic), мне нужно транслировать зрителям на следующих событиях, присоединяющихся к и игроку, оставив на игру/тему, на которую подписаны зрители. До сих пор, когда я могу отправлять информацию на сервер (от клиента), когда игрок присоединяется/отключает игру.
Но как мне передавать эту информацию Spectators (end клиента) Когда игрок присоединяется или отключает.


ab.connect(
'ws://localhost:8080',
function (session) {
appSession = session;
$('#btnJoinGame').on('click',function(){
session.publish('joingame', ['data','GAME_ID']);
});
});


spectator.html

var conn = new ab.Session(
'ws://localhost:8080',
function() {
conn.subscribe('spectator_GAME_ID', function(topic, data) {
console.log(topic);
console.log(data);
});
},
function() {
console.warn('WebSocket connection closed');
}
);
/* OR Using the legacy syntax */
/*
ab.connect(
'ws://localhost:8080',
function (session) {
session.subscribe("t1011", function (topic, event) {
console.log(event);
});
}
);
*/



server.php
require __DIR__ . '/vendor/autoload.php';

use Ratchet\Wamp\WampServerInterface;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface as Conn;

class EventHandler implements WampServerInterface, MessageComponentInterface{
public function __construct(React\EventLoop\StreamSelectLoop $loop){
$this->loop = $loop;
}
public function onSubscribe(Conn $conn, $subscription, $params = array()){
$subscription->broadcast($this->data);
}

public function onPublish(Conn $conn, $topic, $params, array $exclude, array $eligible) {
if($topic->getId() === 'joingame'){
if(!isset($this->data[$params[1]])){
$this->data[$params[1]] = array($params[0]);
}else{
array_push($this->data[$params[1]], $params[0]);
}
}
/** DOES'NT WORKS **/
$newtopic = new Ratchet\Wamp\Topic('spectator_GAME_ID');
$this->onSubscribe($conn,$newtopic);
}
/*Omitting other methods for brevity*/
}

$loop = React\EventLoop\Factory::create();

$webSock = new React\Socket\Server($loop);
$webSock->listen(8080, '0.0.0.0'); // Binding to 0.0.0.0 means remotes can connect
new Ratchet\Server\IoServer(
new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
new Ratchet\Wamp\WampServer(
new EventHandler($loop) // This is my class. Pass in the loop!
)
)
),
$webSock
);

$loop->run();


Подробнее здесь: https://stackoverflow.com/questions/334 ... lish-event
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ratchet WAMP Onpublish всегда публикуйте всем клиентам, включая Aller Publish или нет?
    Anonymous » » в форуме Php
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Ratchet WAMP onpublish всегда публикует для всех клиентов, включая вызывающую публикацию или нет?
    Anonymous » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Некоторым подписчикам не звонят при запуске события
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Некоторым подписчикам не звонят при запуске события
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как предотвратить перезагрузку страницы после блока оповещения на мероприятии Key Down?
    Anonymous » » в форуме Jquery
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»