websockets socket ejemplo php symfony websocket

php - ejemplo - cómo usar webSockets correctamente en Symfony2



websocket php mysql (1)

Estoy tratando de implementar websockets en Symfony2,

Encontré este http://socketo.me/ que parece bastante bueno.

Lo intento con Symfony y funciona, esta fue solo una simple llamada usando telnet. Pero no sé cómo integrar esto en Symfony.

Creo que tengo que crear un servicio, pero no sé realmente qué tipo de servicio y cómo llamarlo desde el cliente

Gracias por tu ayuda.


Primero debes crear un servicio. Si desea inyectar su administrador de entidades y otras dependencias, hágalo allí.

En src / MyApp / MyBundle / Resources / config / services.yml:

services: chat: class: MyApp/MyBundle/Chat arguments: - @doctrine.orm.default_entity_manager

Y en src / MyApp / MyBundle / Chat.php:

class Chat implements MessageComponentInterface { /** * @var /Doctrine/ORM/EntityManager */ protected $em; /** * Constructor * * @param /Doctrine/ORM/EntityManager $em */ public function __construct($em) { $this->em = $em; } // onOpen, onMessage, onClose, onError ...

Luego, crea un comando de consola para ejecutar el servidor.

En src / MyApp / MyBundle / Command / ServerCommand.php

use Symfony/Bundle/FrameworkBundle/Command/ContainerAwareCommand; use Symfony/Component/Console/Input/InputInterface; use Symfony/Component/Console/Output/OutputInterface; use Ratchet/Server/IoServer; class ServerCommand extends ContainerAwareCommand { protected function configure() { $this ->setName(''chat:server'') ->setDescription(''Start the Chat server''); } protected function execute(InputInterface $input, OutputInterface $output) { $chat = $this->getContainer()->get(''chat''); $server = IoServer::factory($chat, 8080); $server->run(); } }

Ahora tiene una clase de Chat con inyecciones de dependencia, y puede ejecutar el servidor como un comando de consola. ¡Espero que esto ayude!