Maison  >  Article  >  interface Web  >  Explication détaillée de node.js utilisant websocket basé sur express

Explication détaillée de node.js utilisant websocket basé sur express

小云云
小云云original
2017-12-23 09:03:502770parcourir

Cet article présente principalement la méthode de node.js utilisant websocket basée sur express. Il analyse les paramètres associés et les techniques d'utilisation de node.js basées sur websocket d'appel express basé sur l'exemple. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

J'ai également recherché cet effet pendant longtemps, et le test a réussi Quoi qu'il en soit, il a réussi, jetons un coup d'oeil

Vous devez d'abord installer le module socket.io <.>


npm install socket.io --save
Ensuite, ouvrez le app.js d'express et importez le module, ajoutez deux lignes ci-dessous


var app = express();
autour de la ligne 12


var server = require(&#39;http&#39;).Server(app);
var io = require(&#39;socket.io&#39;)(server);
Puis ajoutez


app.use(function(req, res, next){
 res.io = io;
 next();
});
en plus de 20 lignes parce que je ne Je n'aime pas lire sur www Start, alors ajoutez quelques lignes de code supplémentaires à app.js, ajoutez-les à l'avant-dernière ligne en bas


var port = 3000;
app.set(&#39;port&#39;, port);
server.listen(port);
Cela commencera à écouter le port 3000

De cette façon, le travail de préparation est terminé, puis démarrera l'exemple

Utilisez l'exemple de code officiel pour tester, vous pouvez l'écrire directement dans l'application .js


io.on(&#39;connection&#39;, function (socket) {
 socket.emit(&#39;news&#39;, { hello: &#39;world1&#39; });
 socket.on(&#39;my other event&#39;, function (data) {
  console.log(data);
 });
});
Le travail de préparation côté serveur est terminé. Sur la page client, introduisez d'abord le fichier socket.js

<.>


puis ouvrez la page pour la tester
<script src=&#39;javascripts/socket.io-1.4.5.js&#39;></script>
var socket = io.connect("//localhost:3000");
socket.on(&#39;news&#39;, function (data) {
  console.log(data);
  alert(data);
  socket.emit(&#39;my other event&#39;, { my: &#39;data&#39; });
});

Si vous souhaitez envoyer des informations du serveur vers une seule page, vous pouvez écrire comme ceci

Recommandations associées :
router.get(&#39;/&#39;, function(req, res, next) {
  //只有当前页面可以获得
  res.io.on(&#39;connection&#39;, function(socket) {
    socket.emit(&#39;news&#39;, {
      hello: &#39;world&#39;
    });
    socket.on(&#39;my other event&#39;, function(data) {
      console.log(data);
    });
  });
  //所有页面都可以获得
  var io = require("../app").io;
  io.emit("news",{hello:"myworld"});
  res.render("pclogin.ejs", {});
});

À propos de la solution au problème selon lequel le serveur de déploiement WebSocket ne peut pas se connecter au réseau externe

Introduction détaillée à websocket en php

nodejs+websocket remplit une fonction de système de chat

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!

Déclaration:
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