Ankündigung

Einklappen
Keine Ankündigung bisher.

Symfony 3 und Ratchet localhost

Einklappen

Neue Werbung 2019

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

  • Symfony 3 und Ratchet localhost

    Hi!

    Ich versuche momentan Ratchet und Symfony 3 bei mir Lokal zum Laufen zu bringen. Beim Code habe ich mich am Hello-World Beispiel von Ratchet orientiert:

    ChatServerCommand.php
    PHP-Code:
    <?php
    namespace AppBundle\Command;

    use 
    Symfony\Component\Console\Command\Command;
    use 
    Symfony\Component\Console\Input\InputInterface;
    use 
    Symfony\Component\Console\Output\OutputInterface;
    use 
    Ratchet\Server\IoServer;
    use 
    AppBundle\Chat;

    class 
    ChatServerCommand extends Command
    {
        protected function 
    configure()
        {
            
    $this->setName('app:chat-server');
        }

        protected function 
    execute(InputInterface $inputOutputInterface $output)
        {
            
    $output->writeln('Starting chat server.');

            
    $server IoServer::factory(
                new 
    Chat(),
                
    8080
            
    );

            
    $server->run();
        }
    }



    Die Chat-Klasse habe ich vom Hello World Beispiel - abgesehen vom Namespace - 1:1 übernommen. In der Kommandozeile starte ich den Server mit:
    Code:
    php bin/console app:chat-server
    Versuche ich mich in einem anderen CMD-Fenster mit telnet localhost 8080 zu verbinden, erscheint zuerst "Verbindungsaufbau zu localhost...", nach dem Verbindungsaufbau ist es mir aber nicht möglich Nachrichten abzusenden geschweige denn einzutippen. In der onOpen-Methode der Chat Klasse sollte zudem bei jedem neuen Verbindungsaufbau eine Meldung ausgegeben werden:
    PHP-Code:
    // ...
        
    public function onOpen(ConnectionInterface $conn)
        {
            
    // Store the new connection to send messages to later
            
    $this->clients->attach($conn);

            echo 
    "New connection! ({$conn->resourceId})\n";
        }
    // ... 
    In dem CMD-Fenster, in welchem ich den Server starte fehlt jede Spur von dieser Meldung. Heißt dass das der Verbindungsaufbau fehlgeschlagen ist oder hat das andere Ursachen? Ich bin mir auch nicht sicher, wie ich das Ganze am Besten debuggen soll!? Habe das Hello-World-Bsp bereits ohne Symfony probiert, also den Code 1:1 übernommen - da klappt dann auch alles wunderbar

  • #2
    Dann liegt es wohl am Namespace. Wahrscheinlich sucht er im falschen Namespace nach den Klassen.
    Vielleicht mal die Klassen mit komplettem Namespace angeben?
    "Software is like Sex, it's best if it's free." - Linus Torvalds

    Kommentar


    • #3
      Du musst bedenken dass diese socket verdindung nicht einfach so über Telnet zu machen ist, bis onOpen aufgerufen wird, kommt der ganze RFC Protocol handshake gedöns.

      Kopier aus dem Beispiel den JavaScript part in eine html datei und öffne diese in Browser. Oder wie hast du es ohne Symfony getestet auch mit telnet? Wie siehts mit fehlermeldung in php error logs aus?
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

      Kommentar

      Lädt...
      X