node.js基于express使用websocket的方法
本文實例講述了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)完成了,然后開始進(jìn)行示例
用官方的示例代碼測試,可以直接寫到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è)計有所幫助。
相關(guān)文章
Node.js之如何創(chuàng)建TCP服務(wù)器端
這篇文章主要介紹了Node.js之如何創(chuàng)建TCP服務(wù)器端問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
Node.js中,在cmd界面,進(jìn)入退出Node.js運行環(huán)境的方法
今天小編就為大家分享一篇Node.js中,在cmd界面,進(jìn)入退出Node.js運行環(huán)境的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
NodeJS連接MongoDB數(shù)據(jù)庫時報錯的快速解決方法
下面小編就為大家?guī)硪黄狽odeJS連接MongoDB數(shù)據(jù)庫時報錯的快速解決方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考2016-05-05
npm?install的--save和--save-dev使用說明(推薦)
這篇文章主要介紹了npm?install的--save和--save-dev使用說明,文中給大家提到了各個命令的區(qū)別及各種安裝參數(shù)的區(qū)別,需要的朋友可以參考下2022-08-08

