本文實例講述了node.js基于express使用websocket的方法。分享給大家供大家參考,具體如下:
這個效果我也是翻了好長時間的資料,測試才成功的,反正成功,大家看看吧
首先你需要安裝socket.io模塊
npm install socket.io --save
然后打開express的app.js將模塊引入,在12行左右的
var app = express();
下面添加兩行
var server = require('http').Server(app); var io = require('socket.io')(server);
然后在20多行里面添加
app.use(function(req, res, next){ res.io = io; next(); });
由于本人不喜歡從www里面啟動,所以在app.js里面又添加了幾行代碼,添加到底部的倒數(shù)第二行以上
var port = 3000; app.set('port', port); server.listen(port);
這就開始監(jiān)聽3000端口了
這樣,準(zhǔn)備工作已經(jīng)完成了,然后開始進行示例
用官方的示例代碼測試,可以直接寫到app.js里面
io.on('connection', function (socket) { socket.emit('news', { hello: 'world1' }); socket.on('my other event', function (data) { console.log(data); }); });
服務(wù)端的準(zhǔn)備工作已經(jīng)完成,在客戶端頁面首先將socket.js文件引入
<script src='javascripts/socket.io-1.4.5.js'></script> var socket = io.connect("http://localhost:3000"); socket.on('news', function (data) { console.log(data); alert(data); socket.emit('my other event', { my: 'data' }); });
然后打開頁面測試一下
如果想只在一個頁面里服務(wù)端發(fā)送信息,可以這么寫
router.get('/', function(req, res, next) { //只有當(dāng)前頁面可以獲得 res.io.on('connection', function(socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function(data) { console.log(data); }); }); //所有頁面都可以獲得 var io = require("../app").io; io.emit("news",{hello:"myworld"}); res.render("pclogin.ejs", {}); });
希望本文所述對大家nodejs程序設(shè)計有所幫助。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com