Maison > interface Web > js tutoriel > le corps du texte

Node.js utilise socket pour implémenter le partage d'instances de chat

小云云
Libérer: 2018-01-15 13:23:23
original
1538 Les gens l'ont consulté

Cet article présente principalement l'exemple de code de node.js utilisant socket pour implémenter le chat. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.

Configuration du serveur

app.js


const http = require("http");
const express = require("./express");

//创建一个服务
const server = http.createServer(express);

//监听服务端口
server.listen(8001,()=>{
  console.log("服务端已经启动,请访问 http://localhost:8001");
});
Copier après la connexion

express.js


const url=require("url");
const fs=require("fs");

function express(req,res){
  var urlObj=url.parse(req.url);
  //console.log(urlObj);

  var filePath="./www"+urlObj.pathname;
  var content="not found";
  if(fs.existsSync(filePath)){
    content=fs.readFileSync(filePath);
  }
  
  res.end(content.toString());
}


module.exports=express;
Copier après la connexion

index.html


<!DOCTYPE html>
<html lang="en">
  <head>
   <meta charset="utf-8"/>
    <title>Socket.IO chat</title>
    <style>
     * { margin: 0; padding: 0; box-sizing: border-box; }
     body { font: 13px Helvetica, Arial; }
     form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
     form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
     form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
     #messages { list-style-type: none; margin: 0; padding: 0; }
     #messages li { padding: 5px 10px; }
     #messages li:nth-child(odd) { background: #eee; }
    </style>
   </head>
   <body>
    <ul id="messages"></ul>
    <form action="">
     <input id="m" autocomplete="off" /><button>Send</button>
    </form>

    <script src="js/lib/jquery-1.11.1.js"></script>
    <script src="js/lib/socket.io.js"></script> 
    <script src="js/index.js"></script>
   </body>
</html>
Copier après la connexion

Construction du service client et communication serveur

Nous devons établir une connexion de demande de socket serveur


io.on(&#39;connection&#39;, function(socket){
  console.log(&#39;a user connected&#39;);

  //断开连接
  socket.on(&#39;disconnect&#39;, function(){
    console.log(&#39;user disconnected&#39;);
  });
});
Copier après la connexion

index.js


//客户端建立连接 
var socket = io(); 
客户端向服务端发送请求
index.js

$(&#39;form&#39;).submit(function(){
  //触发事件
  socket.emit(&#39;chat message&#39;, $(&#39;#m&#39;).val());
  $(&#39;#m&#39;).val(&#39;&#39;);
  return false;
 });
Copier après la connexion

app.js


//接收客户端的信息
socket.on(&#39;chat message&#39;, function(msg){
  console.log(&#39;message: &#39; + msg);
});
Copier après la connexion

Diffuser les données du serveur vers le client


socket.on(&#39;chat message&#39;, function(msg){
    console.log(&#39;message: &#39; + msg);

    socket.broadcast.emit("clientE",msg);
  });
Copier après la connexion

Le client reçoit les données diffusées par le serveur


socket.on(&#39;clientE&#39;, function(msg){
  $(&#39;#messages&#39;).append($(&#39;<li>&#39;).text(msg));
});
Copier après la connexion

Recommandations associées :

nodejs implémente le chat WebSocket basé sur la fonction du module WS

Jquery imitation WeChat chat interface exemple de partage

Exemple d'explication détaillée de la salle de discussion pour la communication entre père et fils dans le composant vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal