services:
#     config.yml --> gos_web_socket > storage > client > driver
#    gos_web_socket.client_storage.driver.predis:
#        class: Gos\Bundle\WebSocketBundle\Client\Driver\PredisDriver
#        arguments:
#            - "@snc_redis.cache"

    mineseeker.periodic:
        class: Mine\SeekerBundle\Periodic\MinePeriodic
        tags:
            - { name: gos_web_socket.periodic }
        arguments:
            - '@gos_web_socket.pdo.periodic_ping'

    mineseeker.topic_sample_service:
        class: Mine\SeekerBundle\Topic\MineseekerTopic
        tags:
            - { name: gos_web_socket.topic }
        arguments:
            - "@gos_web_socket.websocket.client_manipulator"
            - '@doctrine.orm.entity_manager'
            - '@request_stack'

    mineseeker.rpc_sample_service:
        class: Mine\SeekerBundle\Rpc\MineseekerRpc
        tags:
            - { name: gos_web_socket.rpc }
        arguments:
            - '@doctrine.orm.entity_manager'
            - '@logger'

    gos_web_socket_server.client_event.listener:
        class: Mine\SeekerBundle\EventListener\MineseekerClientEventListener
        tags:
            - { name: kernel.event_listener, event: 'gos_web_socket.client_connected', method: onClientConnect }
            - { name: kernel.event_listener, event: 'gos_web_socket.client_disconnected', method: onClientDisconnect }
            - { name: kernel.event_listener, event: 'gos_web_socket.client_error', method: onClientError }
            - { name: kernel.event_listener, event: 'gos_web_socket.server_launched', method: onServerStart }
            - { name: kernel.event_listener, event: 'gos_web_socket.client_rejected', method: onClientRejected }
