CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question notifications

fazow
fazow
Niveau 74
20 février 2016 à 19:54:14

Salut

Je me demandais comment été gérées les alertes/notifications dans les sites web.
Sur facebook par exemple, comment la notification de nouveau message est déclenché ?

La solution qui me vient à l'esprit c'est tout simplement une requête envoyée sur la base de données toutes les 10 secondes par exemple. Mais ça me parait lourd comme mécanisme. Ça sous entend qu'une fonction JavaScript tourne tout le temps.

squall4x
squall4x
Niveau 9
20 février 2016 à 20:31:32

Une requête toutes les 10s tu trouves ça lourd ? Ne travaille jamais sur un MMORPG :rire:

fazow
fazow
Niveau 74
20 février 2016 à 20:50:16

okey gamer. Merci :ok:

lisarael
lisarael
Niveau 13
20 février 2016 à 22:46:38

Effectivement, les WebSockets sont le mieux pour ça... mais en fait pas forcément :

À la suite de ton message, j'étais en train de regarder les échanges réseaux de facebook lors d'un chat, et eux, il n'utilisent pas les sockets, ce qui est quand même un peu intéressant, puisque, dans les moments où j'ai eu à faire ce genre de trucs, j'ai plutôt regardé du côté des sockets.

Du coup, j'ai continué mes recherches et en fait, Facebook fonctionne autrement, via AJAX.
Plutôt que de faire une requête AJAX tous les x temps (disons par exemple toutes les secondes), facebook fait une requête AJAX avec un très long timeout, et cette requête, côté serveur, ne répondra rien tant que rien ne se passe. Si la requête arrive à son timeout, une autre requête aussi longue est faite dans la foulée. Et si quelque chose se passe côté serveur, la requête en cours est utilisée pour retourner les données (et une autre longue requête est lancée directement).

Cette méthode a l'avantage d'être moins lourde à mettre en place que les sockets et moins gourmande qu'une requête qui tourne en boucle toutes les secondes ou moins pour rien.
Bref, c'est intéressant et je suis content d'avoir creusé la question, pasque je vais du coup implémenter le même système dans un projet sur lequel je bosse. :)

lisarael
lisarael
Niveau 13
20 février 2016 à 23:33:33

Le problème avec les WebSocket, c'est que ça scale très, très mal.

Faut que je creuse un peu le long polling avec l'infrastructure que j'ai sur mon projet, mais je pense que dans mon cas, ça va clairement être pratique, sur un projet qui a de grosses chances de gonfler à moyen terme.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment