Question : Je souhaite créer une fonction similaire à l'interface de chat QQ sur la page d'accueil du site Web. Cela n'a pas besoin d'être compliqué. Il suffit d'afficher l'avatar de l'utilisateur et le contenu envoyé, et ce n'est pas nécessaire. enregistrer la conversation. Afficher simplement les 20 derniers enregistrements en temps réel ?
Idée personnelle : étant donné que la fonction est relativement simple et pas très compliquée et que le contenu affiché n'a besoin que des 20 derniers éléments, je prévois d'utiliser la méthode d'interrogation AJAX pour le faire. Lorsque l'utilisateur saisit l'enregistrement de discussion, l'enregistrement est stocké. dans la base de données (l'interrogation AJAX lit les données de la base de données en temps réel), puis affiche les données sur la page après les avoir obtenues. Est-ce que c'est bien de faire ça ? Y aura-t-il des problèmes lorsque vous discuterez avec plusieurs personnes ? Par exemple, lorsque les données sont affichées sur la page, cela sera très lent ou quelque chose comme ça ?
Websoket peut être utilisé pour faire cela, mais je ne l'ai jamais utilisé, et je ne sais pas s'il peut être utilisé sur un serveur Windows (le projet est déployé sous Windows).
Voici la question : avez-vous des méthodes simples et efficaces ? Donne-moi quelques conseils! ! ! !
.websocket
或者socket.io
就可以实现了, 这个和操作平台关系不是很大, 和你实现的web服务程序关系比较大, 因为你得选择一个一个web程序支持websocket
或者socket.io. 我之前用
node.js` a été implémenté et nous nous référons également à des exemples en ligne. Vous pouvez également vous référer àNode.js + Web Socket pour créer un programme de chat instantané HiChat
Avec le sondage AJAX, lorsque plusieurs personnes discutent, chaque terminal doit demander en permanence des données à la base de données, ce qui présente les inconvénients suivants :
En raison du grand nombre de demandes, cela augmentera la pression sur le serveur.
Le sondage AJAX lui-même est lent
Étant donné que les navigateurs ont des limites sur le nombre de requêtes AJAX sous le même nom de domaine, l'efficacité de l'interaction des données est encore assez faible.
Si vous utilisez WebSocket, je vous recommande d'utiliser
nodeJS
的ws
做一个广播服务,可以挂起在Windows后台,也可以随意移植,相当方便,用到的库是这个:https://www.npmjs.com/package/ws不得不说,
NodeJS
pour écrire des choses plutôt bonnes en termes de portabilité, d'évolutivité et de compatibilité.Je n'entrerai pas dans le détail de l'opération. Vous pouvez vous référer à l'
ws
包的broadcase example
exemple pour l'écrire.