如何在node的express中使用socket.io,nodesocket.io

來源:互聯網
上載者:User

如何在node的express中使用socket.io,nodesocket.io

伺服器端server.js代碼

複製代碼 代碼如下:
 var express=require("express");
 var http=require("http");
 var sio=require("socket.io");
 var app=express();
 var server=http.createServer(app);
 var fs=require("fs");
 app.get("/", function (req,res) {
    res.sendfile(__dirname+"/index.html");
 });
 server.listen(1337);
 var socket=sio.listen(server);
 socket.on("connection", function (socket) {
     socket.emit("news",{hello:"你好"});
     socket.on("otherEvent", function (data) {
         console.log("伺服器端接受到資料:%j",data);
     })
 });

用戶端index.html代碼

複製代碼 代碼如下:
 <!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <script src="/socket.io/socket.io.js"></script>
     <script>
         var socket=io.connect();
         socket.on("news", function (data) {
             console.log(data.hello);
             socket.emit("otherEvent",{my:"data"});
         });
     </script>
 </head>
 <body>
 </body>
 </html>

忽然想到一個問題.我可不可以把news的監聽代碼寫到和emit的同一端.

這樣:

複製代碼 代碼如下:
 var express=require("express");
 var http=require("http");
 var sio=require("socket.io");
 var app=express();
 var server=http.createServer(app);
 app.get("/", function (req,res) {
     res.sendfile(__dirname+"/index.html");
 });
 server.listen(1337,"127.0.0.1", function () {
     console.log("開始監聽1337");
 });
 var socket=sio.listen(server);
 socket.on("connection", function (socket) {
     socket.on("news", function (data) {
     console.log(data.hello);
     });
     socket.emit("news",{hello:"你好"});
 });

注意15~17行代碼:是我們新添加的.

事實證明不可以,不會有任何的列印.但是也是不會報錯的.

emit的執行,美其名曰:發送事件.如果有參數,美其名曰:攜帶參數.

後記:

在網上也找到不少關於Express架構中的session調用方法,可是發現真正能用的不是很多,本文是根據自己項目的製作過程,整理的Express和socket.IO中使用session的具體方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.