首頁  >  文章  >  web前端  >  如何在node的express使用socket.io_node.js

如何在node的express使用socket.io_node.js

WBOY
WBOY原創
2016-05-16 16:26:591726瀏覽

伺服器端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程式碼

複製程式碼 程式碼如下:

 
 
 
    
    
    
     <script><br />          var socket=io.connect();<br />          socket.on("news", function (data) {<br />              console.log(data.hello);<br />              socket.emit("otherEvent",{my:"data"});<br />          });<br />      </script>
 
 
 
 

突然想到一個問題.我可不可以把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的具體方法。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn