記錄使用者登入登出時間

這是一個客戶的需求

要求記錄使用者的使用時間,因此就必須要記錄留在系統的時間

登入時間沒問題,但是使用者並不是每個都那麼乖,乖乖的按下登出(我自己都這樣了)

因此就要想辦法攔截到window close的事件

但是window close是client的狀態,並不會跟server溝通,所以就要想辦法自己通知了

首先先找到攔截window close的事件 window.onunload

然後再來找怎麼通知server,之前有看過CallBack的作法

想說用XmlHTTP,或許可行

後來找到強者連JavaScript都寫好了牛

www.blueshop.com.tw/board/show.asp

稍微修改一下把javascript寫進masterpage(這點或許以後再加工包進去server,這樣連要記錄的page都可以參數化)

然後在新增一個CloseWindows.aspx

因為還沒有決定DB要怎麼記錄,所以我就先用log4net記錄

出來的結果

2009-07-02 10:43:59,723 INFO  RollingFileAppender d:/WebApp/VS2008/SFA/CloseWindows.aspx.cs21 [(null)]
  使用者關閉視窗!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要实现一个基于 Node.js 和 socket.io 的多人聊天室,您需要遵循以下步骤: 1. 安装 Node.js 和 socket.io 2. 创建一个新的 Node.js 项目 3. 在项目根目录下创建一个名为 index.js 的文件 4. 在 index.js 中引入 socket.io 模块: ```javascript const io = require('socket.io')(server); ``` 5. 创建一个 HTTP 服务器对象: ```javascript const server = require('http').createServer(); ``` 6. 监听 HTTP 服务器对象: ```javascript server.listen(3000, () => { console.log('Server listening on port 3000'); }); ``` 7. 在客户端页面上引入 socket.io.js: ```html <script src="/socket.io/socket.io.js"></script> ``` 8. 在客户端代码中连接到服务器: ```javascript const socket = io.connect('http://localhost:3000'); ``` 9. 在服务器端监听客户端连接事件: ```javascript io.on('connection', (socket) => { console.log('Client connected'); }); ``` 10. 在服务器端监听客户端发送消息事件: ```javascript socket.on('message', (data) => { console.log(`Message received: ${data}`); }); ``` 11. 在客户端发送消息到服务器: ```javascript socket.emit('message', 'Hello, server'); ``` 12. 实现聊天室的在线人数与名称显示功能: ```javascript io.on('connection', (socket) => { console.log('Client connected'); // 发送在线人数和名称 io.emit('online', { count: io.engine.clientsCount, names: Object.keys(io.sockets.sockets).map((id) => io.sockets.sockets[id].username), }); }); ``` 13. 实现客户端登入登出提醒功能: ```javascript io.on('connection', (socket) => { console.log('Client connected'); // 发送登入提醒 socket.broadcast.emit('login', { username: socket.username, }); // 发送在线人数和名称 io.emit('online', { count: io.engine.clientsCount, names: Object.keys(io.sockets.sockets).map((id) => io.sockets.sockets[id].username), }); // 监听登出事件 socket.on('disconnect', () => { console.log('Client disconnected'); // 发送登出提醒 socket.broadcast.emit('logout', { username: socket.username, }); // 发送在线人数和名称 io.emit('online', { count: io.engine.clientsCount, names: Object.keys(io.sockets.sockets).map((id) => io.sockets.sockets[id].username), }); }); }); ``` 以上就是基于 Node.js 和 socket.io 实现多人聊天室的主要步骤和代码实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值