Функция onPush() не срабатывает после нажатия на контроллер с помощью ZeroMQ в пакете Guinness of Symfony/Websocket в symfony2
config.yml
gos_web_socket:
topics:
- @app.real_time.subscribe
- @app.real_time.push
server:
port: 8000 #The port the socket server will listen on
host: localhost #The host ip to bind to
router:
resources:
- @AppBundle/Resources/config/pubsub/routing.yml
client:
firewall: main #can be an array of firewalls
session_handler: @session.handler.pdo
pushers:
zmq:
default: true
host: 127.0.0.1
port: 8888
persistent: true
protocol: tcp
PubSub / routing.yml
real_time_push:
channel: all/user
handler:
callback: 'app.real_time.push' #related to the getName() of your topic
services.yml
app.real_time.subscribe:
class: AppBundle\RealTime\Subscribe
arguments: [ @gos_web_socket.websocket.client_manipulator ]
app.real_time.push:
class: AppBundle\RealTime\Push
arguments: [ @gos_web_socket.websocket.client_manipulator ]
Следующая функция получает удар, когда клиент подписывается на эту тему. Я вижу текст в консоли.
Класс подписки onSubscribe(): Subscribe.php
public function onSubscribe(ConnectionInterface $connection, Topic $topic, WampRequest $request)
{
var_dump("This user is subscribed");
}
Но когда он выталкивается через контроллер через zmq, функция onPush() никогда не срабатывает. Я уже реализовал TopicInterdace и PushableTopicInterface в Push.php.
Push-класс onPush(): Push.php
public function onPush(Topic $topic, WampRequest $request, $data, $provider)
{
var_dump("Helloooooooooooooooooo0000000000");
}
Пожалуйста, кто-нибудь может сказать мне, где я сделал не так. Заранее спасибо. Вот контроллер
$pusher = $this->container->get('gos_web_socket.zmq.pusher');
//push(data, route_name, route_arguments)
$pusher->push(['my_data' => 'data'], 'real_time_push', ['username' => 'sujit']);