Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jouons tous ensemble à un petit jeu

Jouons tous ensemble à un petit jeu

Conférence présentée lors du PHP Tour 2018 à Montpellier. Découverte des outils mis en place dans le cadre de la réalisation d'un quiz pour le #SuperApéroPHP du 8 Mars 2018

Thomas Sieffert

May 18, 2018
Tweet

Other Decks in Programming

Transcript

  1. Jouons tous ensemble
    à un petit jeu
    Thomas Sieffert / @CaporalDead

    View full-size slide

  2. Who am I ?
    Thomas Sieffert
    Dév PHP
    @CaporalDead

    View full-size slide

  3. VRAI
    BEST LOGO

    View full-size slide

  4. L’idée
    Quiz pour toutes les antennes de l’AFUP
    Socle commun de questions pour tous
    Départ différé pour chaque antennes avec un contrôle indépendant du quiz
    Pas d’installation
    Temps réel

    View full-size slide

  5. Commençons par
    jouer tous ensemble à un petit jeu !
    http://quiz.devitek.fr
    85718 85718

    View full-size slide

  6. /!\ Disclaimer /!\
    Cette conférence n’a pas vocation à vous faire découvrir la
    totalité de la stack technique mise en place mais à vous
    expliquer les mécanismes à votre disposition

    View full-size slide

  7. Parlons de vous
    Qui a déjà mis en place une stack temps réel avec Socket.IO ?

    View full-size slide

  8. Parlons de vous
    Qui connait de près ou de loin le framework Laravel ?

    View full-size slide

  9. Parlons de vous
    Qui a déjà mis en place la stack temps réel avec Echo ?

    View full-size slide

  10. Le challenge des prochaines minutes

    View full-size slide

  11. Que se passe-t-il lorsque vous répondez à une question ?

    View full-size slide

  12. Step 1 : l’API

    View full-size slide

  13. Interface “ShouldBroadcast”

    View full-size slide

  14. La méthode “broadcastOn”

    View full-size slide

  15. Définition d’un channel

    View full-size slide

  16. La méthode “broadcastWith”

    View full-size slide

  17. Broadcast vers Redis

    View full-size slide

  18. Utilisation de PUB/SUB dans Redis
    Paradigme Publisher/Subscriber
    “[...] mécanisme de publication de messages et d’abonnement à ces derniers dans lequel les
    diffuseurs (publisher, littéralement éditeurs) ne destinent pas a priori les messages à des destinataires
    (subscriber, littéralement abonné).
    À la place, une catégorie est associée aux messages émis sans savoir s’il y a des destinataires. De la
    même manière, les destinataires s’abonnent aux catégories les intéressant et ne reçoivent que les
    messages correspondant, sans savoir s’il y a des diffuseurs.”
    Source Wikipédia

    View full-size slide

  19. Vue de Redis

    View full-size slide

  20. Step 2 : Echo server

    View full-size slide

  21. tlaverdure/laravel-echo-server
    Serveur NodeJS + Socket.IO
    Opensource

    View full-size slide

  22. laravel-echo-server

    View full-size slide

  23. Quid de l’authentification ?

    View full-size slide

  24. Définition des règles

    View full-size slide

  25. Autoriser un channel de présence

    View full-size slide

  26. Step 3 : Laravel echo

    View full-size slide

  27. Pour un channel privé

    View full-size slide

  28. Pour un channel privé

    View full-size slide

  29. Pour un channel de présence

    View full-size slide

  30. Pour un channel de présence

    View full-size slide

  31. Pour un channel de présence

    View full-size slide

  32. Pour un channel de présence

    View full-size slide

  33. Pour aller plus loin
    Get real with Laravel Echo
    Tutoriel vidéo : Laravel Echo

    View full-size slide

  34. That’s all
    Des questions ?
    https://joind.in/talk/c0fd7

    View full-size slide

  35. Merci =)
    Thomas Sieffert / @CaporalDead https://joind.in/talk/c0fd7

    View full-size slide