Ankündigung

Einklappen
Keine Ankündigung bisher.

Ratchet Push Tutorial

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ratchet Push Tutorial

    Hallo zusammen,

    ich versuche seit gestern das Ratchet Push Server Tutorial zum laufen zu bekommen.

    http://socketo.me/docs/push

    Ich habe die zmq extension installiert und den Code genau so übernommen wie im Beispiel.
    Allerdings wird die onBlogEntry() Funktion niemals aufgerufen und ich verstehe nicht wirklich warum.

    Hat sich schon einmal jemand mit diesem Beispiel auseinandergesetzt?

    Ich teste das ganze aktuell Lokal mit XAMPP und Windows 10.

    PHP-Code:
    <?php
        
    // post.php ???
        // This all was here before  ;)
        
    $entryData = array(
            
    'category' => 'kittensCategory'
          
    'title'    => 'Test'
          
    'article'  => 'Test'
          
    'when'     => time()
        );

      
    //  $pdo->prepare("INSERT INTO blogs (title, article, category, published) VALUES (?, ?, ?, ?)")
      //      ->execute($entryData['title'], $entryData['article'], $entryData['category'], $entryData['when']);

        // This is our new stuff
        
    $context = new ZMQContext();
        
    $socket $context->getSocket(ZMQ::SOCKET_PUSH'my pusher');
        
    $socket->connect("tcp://localhost:5555");

        
    $socket->send(json_encode($entryData));
    Was mir hier etwas komisch vorkommt, dass nach ->connect mein $socket Objekt scheinbar leer ist.
    object(ZMQSocket)#2 (0) { }

    Vielleicht fällt jemandem ja etwas auf?

    Danke und viele Grüße


  • #2
    Welche onBlogEntry()-Funktion? Seh ich in deinem Code nicht.

    Kommentar


    • #3
      Hi,

      ich habe extra das Tutorial verlinkt um hier im Forum nicht den ganzen Code zu posten.

      Pusher.php

      PHP-Code:
      <?php
      namespace MyApp;
      use 
      Ratchet\ConnectionInterface;
      use 
      Ratchet\Wamp\WampServerInterface;

      class 
      Pusher implements WampServerInterface {
          
      /**
           * A lookup of all the topics clients have subscribed to
           */
          
      protected $subscribedTopics = array();

          public function 
      onSubscribe(ConnectionInterface $conn$topic) {
            echo 
      "Hello to: ".$topic;
              
      $this->subscribedTopics[$topic->getId()] = $topic;
          }

          
      /**
           * @param string JSON'ified string we'll receive from ZeroMQ
           */
          
      public function onBlogEntry($entry) {
              
      $entryData json_decode($entrytrue);
              
      var_dump($entryData);
              
      // If the lookup topic object isn't set there is no one to publish to
              
      if (!array_key_exists($entryData['category'], $this->subscribedTopics)) {
                  return;
              }

              
      $topic $this->subscribedTopics[$entryData['category']];

              
      // re-send the data to all the clients subscribed to that category
              
      $topic->broadcast($entryData);
          }

      Kommentar


      • #4
        Habs gerade ausprobiert und bei mir läuft es. $entry_data wird in der Konsole ausgegeben:

        Code:
        c:\xampp\htdocs\zmq_test>php push-server.php
        array(4) {
          ["category"]=>
          string(15) "kittensCategory"
          ["title"]=>
          string(4) "Test"
          ["article"]=>
          string(4) "Test"
          ["when"]=>
          int(1542382492)
        }

        Kommentar


        • #5
          Sehr sehr seltsam... ergibt keinen Sinn. Wie genau hast du die zmq extension installiert?
          Hast du bei zmq sonst noch irgendwas konfiguriert?

          Kommentar


          • #6
            Zitat von skizZ Beitrag anzeigen
            Sehr sehr seltsam... ergibt keinen Sinn. Wie genau hast du die zmq extension installiert?
            Ich hab die beiden DLLs in die PHP-Ordner kopiert und die Extension im php.ini eingetragen. Wenn man da was falsch macht, hat das übrigens eine Fehlermeldung zur Folge. Wenn keine Fehlermeldung aufscheint (und Error-Reporting auch nicht deaktiviert wurde), sollte von der Seite eigentlich alles passen.

            Zitat von skizZ Beitrag anzeigen
            Hast du bei zmq sonst noch irgendwas konfiguriert?
            Nein.

            Kommentar


            • #7
              Hi,

              genau das habe ich auch gemacht...

              Welche dlls hast du genommen?

              Error Reporting habe ich nicht deaktiviert es passiert einfach ncihts. Ich versuche es nochmal in einer anderen Umgebung.

              Kommentar


              • #8
                Jupp, funktioniert auf einem anderen System (Unix Server)

                Kommentar


                • #9
                  Zitat von skizZ Beitrag anzeigen
                  Welche dlls hast du genommen?
                  php_zmq-1.1.2-5.6-ts-vc11-x86.zip
                  https://windows.php.net/downloads/pe...ses/zmq/1.1.2/

                  Hab aber noch ein altes PHP (PHP 5.6.12), weil das eh nur mein lokaler Server zum rumspielen ist.

                  Kommentar

                  Lädt...
                  X