nodejs 使用socket.io与网页实时数据交互
来源:互联网 发布:配音软件 语气 编辑:程序博客网 时间:2024/06/05 21:52
首先我们需要安装socket模块
安装命令: npm install socket.io
编辑前台页面:index.html
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>统计在线人数</title> <script src="http://localhost:3000/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> // 创建websocket连接 var socket = io.connect('http://localhost:3000'); // 把信息显示到div上 socket.on('onlinenums', function (data) { $("#nums").html(data.nums); }); </script></head><body> 当前在线人数:<span style="color: red;" id="nums">0</span></body></html>
服务端的:index.js
volatile 意思大概是说,当服务器发送数据时,客户端因为各种原因不能正常接收,比如网络问题、或者正处于长连接的建立连接阶段。此时会让我们的应用变得 suffer,那就需要考虑发送 volatile 数据。
var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs');//当前在线人数var onlineCount = 0;function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); });}//连接事件io.sockets.on('connection', function (socket) { console.log('有新用户进入...'); //叠加当前在线人数 onlineCount++; var tweets = setInterval(function () { socket.volatile.emit('onlinenums', {nums : onlineCount}); }, 1000); console.log('当前用户数量:'+onlineCount); //客户端断开连接 socket.on('disconnect', function() { if(onlineCount > 0 ){ //当前在线用户减一 onlineCount--; console.log('当前用户数量:'+onlineCount); } });});//启动HTTP服务,绑定端口3000app.listen(3000, function(){ console.log('listening on *:3000');});
启动web服务器,访问index.html:
再打开一个窗口打开这个链接:
服务端打印日志信息:
node 的socket.io模块使用起来非常简单方便,把我们需要交互的实时信息推送到前端的页面。
0 0
- nodejs 使用socket.io与网页实时数据交互
- 使用nodejs+socket.io与页面通讯
- nodejs+socket.io+zmq 实现实时刷新
- NodeJS 使用Socket.IO实例
- NodeJs与MySQL交互数据
- Nodejs实时通讯 在线聊天室(Socket.io)_收藏
- socket.io 实时通信在nodejs下的应用
- postgres+socket.io+nodejs实时地图应用实践
- postgres+socket.io+nodejs实时地图应用实践
- nodejs+socket.io实现数据推送功能
- 使用nodejs引用socket.io做聊天室
- socket 与 mina 交互数据
- 使用springmvc实现网页前端与后台的数据交互
- NodeJS Socket.io
- NodeJS Socket.io
- NodeJS Socket.io
- NodeJS Socket.io
- nodejs+socket.io.js
- Tkinter -- Toplevel
- bzoj 1494: [NOI2007]生成树计数
- Zookeeper学习(九):ZooKeeper 实现分布式锁
- Android_gridView应用实例
- 关于注重驱动与中间层的分离
- nodejs 使用socket.io与网页实时数据交互
- 计算机的启动
- 第七届蓝桥杯省赛总结
- uva 1169 Robotruck(简单区间dp)
- Spring中Quartz调度器的使用
- NEFU 1002
- C#学习 - vs调试(采用异常处理来实现两个整数的和)
- [毕业设计]手写数字识别系统设计与实现
- HDU3501