如何在node的express中使用socket.io
服務(wù)器端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("服務(wù)器端接受到數(shù)據(jù):%j",data);
})
});
客戶(hù)端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>
忽然想到一個(gè)問(wèn)題.我可不可以把news的監(jiān)聽(tīng)代碼寫(xiě)到和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("開(kāi)始監(jiān)聽(tīng)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行代碼:是我們新添加的.
事實(shí)證明不可以,不會(huì)有任何的打印.但是也是不會(huì)報(bào)錯(cuò)的.
emit的執(zhí)行,美其名曰:發(fā)送事件.如果有參數(shù),美其名曰:攜帶參數(shù).
后記:
在網(wǎng)上也找到不少關(guān)于Express框架中的session調(diào)用方法,可是發(fā)現(xiàn)真正能用的不是很多,本文是根據(jù)自己項(xiàng)目的制作過(guò)程,整理的Express和socket.IO中使用session的具體方法。
- node.js Web應(yīng)用框架Express入門(mén)指南
- win7下安裝配置node.js+express開(kāi)發(fā)環(huán)境
- Node.js+Express配置入門(mén)教程詳解
- Node.js的Express框架使用上手指南
- Node.js+Express配置入門(mén)教程
- node.js+express制作網(wǎng)頁(yè)計(jì)算器
- Node.js和Express簡(jiǎn)單入門(mén)介紹
- angular2+node.js express打包部署的實(shí)戰(zhàn)
- node.js中的Socket.IO使用實(shí)例
- node.js中Socket.IO的進(jìn)階使用技巧
- node.js基于express使用websocket的方法
相關(guān)文章
node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解
在ES6引入TypedArray之前,JavaScript語(yǔ)言沒(méi)有讀取或操作二進(jìn)制數(shù)據(jù)流的機(jī)制,本文為大家詳細(xì)介紹nodeJS中二進(jìn)制操作模塊buffer對(duì)象使用方法詳解2020-02-02
node.js中fs文件系統(tǒng)目錄操作與文件信息操作
本篇文章給大家詳細(xì)分析了node.js中fs文件系統(tǒng)目錄操作與文件信息操作的方法以及代碼詳解,需要的讀者可以參考下。2018-02-02
Nodejs中獲取當(dāng)前函數(shù)被調(diào)用的行數(shù)及文件名詳解
這篇文章主要給大家介紹了關(guān)于Nodejs中獲取當(dāng)前函數(shù)被調(diào)用的行數(shù)及文件名的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
node.js對(duì)于數(shù)據(jù)庫(kù)MySQL基本操作實(shí)例總結(jié)【增刪改查】
這篇文章主要介紹了node.js對(duì)于數(shù)據(jù)庫(kù)MySQL基本操作,結(jié)合實(shí)例形式總結(jié)分析了node.js針對(duì)mysql數(shù)據(jù)庫(kù)基本配置、連接與增刪改查相關(guān)操作技巧,需要的朋友可以參考下2023-04-04
Node.js實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條
這篇文章給大家介紹了如何實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條,如果你的工作用過(guò)上傳圖片或上傳大文件啥的,一般在IE低版本瀏覽器里,會(huì)切換到用flash解決,可是有些人肯定不會(huì)為了老舊IE的進(jìn)度條而去學(xué)flash,那么下面來(lái)一起看看吧。2016-09-09
Node.js查詢(xún)MySQL并返回結(jié)果集給客戶(hù)端的全過(guò)程
nodejs最大的優(yōu)勢(shì)也是大家用著最為難以理解的一點(diǎn),就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導(dǎo)致很多人不理解也用不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢(xún)MySQL并返回結(jié)果集給客戶(hù)端的相關(guān)資料,需要的朋友可以參考下2022-12-12

