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 Slide

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

    View Slide

  3. View Slide

  4. VRAI
    BEST LOGO

    View Slide

  5. 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 Slide

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

    View Slide

  7. /!\ 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. Le challenge des prochaines minutes

    View Slide

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

    View Slide

  13. Step 1 : l’API

    View Slide

  14. Le backend

    View Slide

  15. View Slide

  16. View Slide

  17. Interface “ShouldBroadcast”

    View Slide

  18. La méthode “broadcastOn”

    View Slide

  19. Définition d’un channel

    View Slide

  20. La méthode “broadcastWith”

    View Slide

  21. Broadcast vers Redis

    View Slide

  22. 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 Slide

  23. Vue de Redis

    View Slide

  24. Step 2 : Echo server

    View Slide

  25. View Slide

  26. EZ PZ

    View Slide

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

    View Slide

  28. laravel-echo-server

    View Slide

  29. Quid de l’authentification ?

    View Slide

  30. Définition des règles

    View Slide

  31. Autoriser un channel de présence

    View Slide

  32. Step 3 : Laravel echo

    View Slide

  33. View Slide

  34. Pour un channel privé

    View Slide

  35. Pour un channel privé

    View Slide

  36. Pour un channel de présence

    View Slide

  37. Pour un channel de présence

    View Slide

  38. Pour un channel de présence

    View Slide

  39. Pour un channel de présence

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide