DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 如何在node的express中使用socket.io
如何在node的express中使用socket.io
編輯:關於JavaScript     

服務器端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的具體方法。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved