聊天室技术-处理异常离线的方法

某些网友由于线路掉线,死机等原因,不能通过正常的途径离开聊天室,造成在线人数不能正常显示!解决的方法一般为

1 建立在线人数文件,里面保存在线人的id/pass/time 其中time 为最后的更新时间

2 聊天程序正常运行时每隔一段时间更新自己的 id/pass/time 通知系统自己在线,一般可以为1-2分钟

3 系统每格一段时间扫描一次在线人名单,查找那些已经超过规定时间(比如5分钟)没有更新的id,确认为已经异常离线

4 在线人数为文件里的行数,名单为行数据

我的现在提供下载的聊天室就是采用这种方法实现的!

这种方法流程比较简单,但在人多时的文件共享问题成为关键,本人通过实践,发现一种消耗系统资源非常少,能很好解决共享的方法!

具体思路如下:

1 建立一个 useronline 子目录存放在线人员数据

2 每个进入的人在里面建立一个以用户名为文件名的文件。内容为空!

3 聊天程序正常运行时,每隔一段时间更新自己的子目录里的文件

4 系统根据目录里文件更新的时间判断用户数否离线

5 在线人数为目录里的文件数,名单为文件名

优点:每个人之更新自己的文件,不影响其他人,不存在共享问题!

由于可以每隔5分钟扫描一次,故消耗资源很少!

在我的新版聊天室中将采用这种技术!

时间: 2024-10-08 21:44:45

聊天室技术-处理异常离线的方法的相关文章

简单又好用的聊天室技术——WebSocket

现在,很多网站为了实现推送技术,所用的技术都是轮询.轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器.这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP request的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源. Ajax轮询——“定时的通过Ajax查询服务端" 而比较新的技术去做轮询的效果是Comet,使用了AJAX.但这种技术虽然可达

ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(八) 之 用 Redis 实现用户在线离线状态消息处理

前言 上篇的预告好像是“聊天室的小细节,你都注意到了吗?”.今天也是为那篇做铺垫吧.之前的版本有好多问题,比如:当前登录用户是否合法问题,userid参数如果随便传后台没有验证.还有一个致命的问题,用户AB都在线,但是如果A没有打开B的窗口或者B没有打开A的窗口,那么发消息,对方是收不到的.因为他们没有进入到同一个组里面.本篇讲述了一些Redis的东西.由于项目本身就是为了学习和练习一些东西.所以,Redis并不是我的强项,只不过随便研究研究,具体专业的用法我也不太会.还在学习中... 实现思路

php_3_“简易聊天室 ”实现的关键技术 详解

                  PHP+MySQL实现Internet上一个简易聊天室的关键技术  系统目标: 聊天室使用数据库汇集每个人的发言,并可将数据库内的发言信息显示在页面,让每个用户都可以看到,具体功能如下: a.用户登录:用户发言时显示其登录名信息 b.用户发言:用户输入说的话 c.显示发言信息:用户浏览所有发言信息 设计思路: (1).建立聊天室数据库及相关数据表 (2).实现用户登录页面(login.php) (3).实现发言页面(speak.php) (4).实现发言显示页

PHP_D4_“简易聊天室 ”的具体技术实现

上面已经介绍了系统的关键技术,下面对具体实现进行详解: 1.开发时,经常需要利用一个配置文件来存储系统的参数,例如:数据库连接信息等.这样可以提高系统的可移植性,当系统的配置发生变化时,例如:更改服务器,就不用修改散布在各个页面的数据库连接信息,而只需修改配置文件即可. 下面创建一个系统配置文件sys_conf.inc,用来保存数据库连接信息: 1 <!--sys_conf.inc:系统配置文件------------------------------> 2 <?php 3 //数据库

&#8203;下面为大家介绍一个运用自己电脑当成服务器,然后开发一个简单的php聊天室程序的方法:

上一期我们说过B/S技术开发聊天有什么优点,这一期我们就来简单的说说用C/S技术开发又有什么特点? 一.稳定性和灵活性:用C/S技术可以将应用和服务进行分离.二.安全性:C/S对应是的是结构模式,一般只适用于局域网,所以安全性比较好.三.速度快:客户端与服务器端是直接连接的,中间没有经过别的环节,所以响应速度非常快.四.升级维护复杂:如果软件需要升级维护,那么每一台客户的机子都要进行相应的升级维护服务,那么这个过程肯定是比较繁琐的.综上所述,对于不同的聊天室需要采用不同的开发技术,但是国内目前很

视频聊天室用什么技术开发的?

视频聊天室有很多中不同的技术可以开发,下面为大家稍微举几个列子: 一.可以用纯C/S架构来进行开发,好处是功能实现起来会更加强大,缺点是开发成本极高,周期较长.一般不适合中小型企业站长运用. 二.通过开发插件来实现高性能的视频聊天室,不过它的缺点和纯C/S架构一样就是开发成本太高,目前网络木马盛行,很多开发人员对此类方式不太感冒. 三.利用纯web的手段去开发视频聊天室,它的优点是:开发成本低.运作效率高,可以通过简单的工具就能开发实现. 综上所述,目前最好的视频聊天室开发技术还是推荐用纯web

采用PHP实现”服务器推”技术的聊天室

传统的B/S结构的应用程序,都是采用"客户端拉"结束来实现客户端和服务器端的数据交换. 本文将通过结合Ticks(可以参看我的另外一篇文章:关于PHP你可能不知道的-PHP的事件驱动化设计),来实现一个服务器推的PHP聊天室简单构想. PHPer,尤其是用过set_cookie, header的,一定见过这样的提示信息:"Warning: Cannot modify header information – headers already sent by-..",

php+html5基于websocket实现聊天室的方法

<?php error_reporting(E_ALL); ob_implicit_flush(); $sk=new Sock('127.0.0.1',8000); $sk->run(); class Sock{ public $sockets; public $users; public $master; public function __construct($address, $port){ $this->master=$this->WebSocket($address, $

自写聊天室_LinuxC实现(4)——项目文档

西邮Linux兴趣小组  暑期项目 项目名称:    happychat        项目作者:      楚东方     1. 引言 1.1 项目综述 对项目进行简要介绍,并说明编写此项目的目的. 该项目为聊天室,主要为了实现聊天,文件传输,方便linux环境下的,交流与聊天. 实现功能: 1.好友管理: (1)添加好友 (2)删除好友 2.群管理 (1)创建群 (2)加群 (3)退群 (4)解散群 3.文件传送 实现了上传和下载的断点续传 4.聊天界面分屏 利用光标的移动对输入和屏幕聊天记