GeniusesOfSymfony / WebSocketBundle

:part_alternation_mark: Websocket server for Symfony applications (powered by Ratchet), includes a Autobahn.JS based JavaScript client
MIT License
609 stars 140 forks source link

Pusher only work once #377

Closed thehatami closed 4 years ago

thehatami commented 5 years ago

i write test push in my controller like this:

$pusher->push(['msg' => 'helllo'], 'acme_topic');

and this work at first run. in second run symfony server exit with Signal 11. and show me these error.

AMQPConnectionException
Parameter 'password' exceeds 128 character limit.

whats wrong?

-- ubuntu 18.04 bionic php 7.3 all component updated

mbabker commented 5 years ago

Without seeing more code or knowing more of your configuration I honestly can't help you with this (or any) of your issues. Like I said earlier, I'm not running AMQP so there may be some goofy behavior in that pusher that doesn't exist with the WAMP pusher or there may be an application bug or there may be some other problem.

thehatami commented 5 years ago

i use symfony 4.2. my gos_web_socket.yaml configured as:

gos_web_socket:
  server:
    host: 127.0.0.1   #The host ip to bind to
    port: 8080        #The port the socket server will listen on
    router:
      resources:
        - '../src/uscon/routing.yaml'

  client:
    session_handler:        '@session.handler.pdo'
    firewall:               main
    storage:
      driver:               '@gos_web_socket.client_storage.driver.redis'
      ttl:                  28800
      prefix:               'client'
      decorator:            '@gos_web_socket.client_storage.doctrine.decorator'

  shared_config: true

  pushers:
    amqp:
      default:              true
      host:                 127.0.0.1
      port:                 5672
      login:                guest
      password:             guest
      vhost:                ACME
      queue_name:           gos_websocket
      exchange_name:        gos_websocket_exchange

    wamp:
      host:                 127.0.0.1
      port:                 8080
      ssl:                  false
      origin:               null

topic and rds registed as:

acme.rpc_service:
    class: App\uscon\Rpc\AcmeRpc
    tags:
      - { name: gos_web_socket.rpc }

acme.topic_service:
    class: App\uscon\Topic\AcmeTopic
    arguments: ["@gos_web_socket.websocket.client_manipulator"]
    tags:
      - { name: gos_web_socket.topic }

and my pusher bind to controller:

App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']
    bind:
      $pusher: '@gos_web_socket.amqp.pusher'

and doctrine_cache:

doctrine_cache:
  providers:
    redis_cache:
      redis:
        host: 127.0.0.1
        port: 6379
        database: 3

    websocket_cache_client:
      type: redis
      alias: 'gos_web_socket.client_storage.driver.redis'

and framwork:

session:
        enabled: true
        handler_id: 'session.handler.pdo'

    #esi: true
    #fragments: true
    php_errors:
        log: true

    cache:
        # Put the unique name of your app here: the prefix seed
        # is used to compute stable namespaces for cache keys.
        prefix_seed: App/Acme

        # The app cache caches to the filesystem by default.
        # Other options include:

        # Redis
        app: cache.adapter.redis
        #default_redis_provider: redis://localhost

        # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
        #app: cache.adapter.apcu

        default_redis_provider: redis://127.0.0.1

here my composer.json

"php": "^7.1.3",
        "ext-amqp": "^1.7",
        "ext-bcmath": "^7.2",
        "ext-ctype": "*",
        "ext-curl": "*",
        "ext-iconv": "*",
        "ext-intl": "^7.3",
        "ext-json": "*",
        "ext-redis": "^4.2",
        "beelab/tag-bundle": "2.1.x-dev",
        "doctrine/annotations": "^1.6",
        "doctrine/doctrine-cache-bundle": "^1.3",
        "econea/nusoap": "^0.9.6",
        "fresh/doctrine-enum-bundle": "^6.2",
        "friendsofsymfony/elastica-bundle": "^5.0",
        "gos/react-amqp": "^0.2.0",
        "gos/web-socket-bundle": "^1.8",
        "jms/i18n-routing-bundle": "^3.0",
        "jsor/doctrine-postgis": "^1.7",
        "limenius/liform-bundle": "^0.13.0",
        "meysampg/intldate": "^1.2",
        "nelmio/cors-bundle": "^1.5",
        "php-amqplib/php-amqplib": "^2.8",
        "predis/predis": "^1.1",
        "sensio/framework-extra-bundle": "^5.1",
        "seretalabs/monolog-fluentd-bundle": "^0.5.0",
        "snc/redis-bundle": "^2.1",
        "symfony/asset": "4.1.*",
        "symfony/console": "4.1.*",
        "symfony/expression-language": "4.1.*",
        "symfony/filesystem": "4.1.*",
        "symfony/flex": "^1.1",
        "symfony/form": "4.1.*",
        "symfony/framework-bundle": "4.1.*",
        "symfony/monolog-bundle": "^3.3",
        "symfony/orm-pack": "*",
        "symfony/process": "4.1.*",
        "symfony/security-bundle": "4.1.*",
        "symfony/serializer": "4.1.*",
        "symfony/serializer-pack": "*",
        "symfony/swiftmailer-bundle": "^3.1",
        "symfony/translation": "4.1.*",
        "symfony/twig-bundle": "4.1.*",
        "symfony/validator": "4.1.*",
        "symfony/web-link": "4.1.*",
        "symfony/webpack-encore-bundle": "^1.0",
        "symfony/yaml": "4.1.*",
        "willdurand/js-translation-bundle": "^2.6"
mbabker commented 5 years ago

I'll try spinning up a server in the next week with AMQP built into the stack and see if I can run recreate any of the problems you're having. I've got some client work keeping me busy the next couple of nights and another backlog item for open source that I want to try and tackle then I can catch back up on some stuff in this repo.

thehatami commented 5 years ago

thx @babker. i dont know why but fresh server installation solve problem.