toberich 板


LINE

※ 引述《pply (干 吃晚餐去~~)》之铭言: : ※ 引述《pply (干 吃晚餐去~~)》之铭言: : : 最近花了点时间设计一个线上人数统计的系统 : : 能够帮网站管理员统计各个网页的线上人数 : : 也能提供网页排名的资讯...像是 BBS 的热门看板一样 : : 不知道这样的服务有没有更大的空间可以发展 : : 一般站长会想使用这样的东西吗 : : 网站在这里~~ : : 还很阳春...我想应该还有很多改进空间...Orz.... : : http://www.incyght.com/ : 有人对技术面有兴趣/质疑....那我就说明一下好了 : 当使用者浏览包含提供 Code 的网页时 : 会送出一个包含原网页网址资讯的要求到伺服器上 : 例如把提供的 code 放在 www.yyy.com/index.htm 上 : 那麽就会把 www.yyy.com/index.htm 这个资讯送到伺服器 : Server 会处理使用者 IP 以及浏览的网址 : 纪录这个 IP 到访该网址,该网址人数 +1 : 同一个 IP 会离开或者是到访另外一个网页 : 如果到访另外一个网页....则做相对应的统计工作 : 如果离开....因为浏览器并不会主动通知伺服器使用者离开 : 所以这里会有一个 delay ..... : 我们让系统定期检查每一个 IP 多久没有更新 : 超过 delay 的时间就认定该 IP 离开....做相对应的统计工作 : delay 可以设长设短.... : 我们没办法知道 IP 没更新是为了什麽 : 可能在看一篇长篇小说,也可能只是把浏览器关掉,这倒是有进一步研究的空间~~ : 如果可以找到一个具有代表性的期望值是最理想的~~~ : 目前设定五分钟~~ : 这件事情可以很精确也可以不那麽精确 : 在 HTTP 的环境下不可能绝对准 : 不过还蛮够用了....大家可以使用来观察看看 : 总之不是玩弄大家的把戏...: ) 如果网页是使用 PHP 来写的话,可以很容易做到基本的统计网站人数功能。 1. 去改写 session 的处理方式,例如以下是将原本存到 file 的 session 资料变成 存到 MySql之类的 (memory) db. (不想搞变化的话直接去存 session file 的目录 和子目录中数数看有几个档案即可知道有几条现存的连线): 去用 session_set_save_handler() 函式改写 session 在 open(), close(), read(), write(), destroy(), Gc() 时的处理方式。 其中在 read() 时去更新目前的 timestamp 值;Gc() 时去检查该 session 是否 已经超过时间了(),超过者即删除之,现存数量即为目前连线数。 (有些细节请到网路上找相关资料) 2. 让连到网站的连线被纪录 session: 也就是在 xxx.php 中执行「session_start();」。 3. 预设的连线保留时间是设定在 php.ini 的 「session.gc_maxlifetime」栏位, 又其预设值是 1440 秒,也就是说一个 session 超过约 24 分钟没有动作的话, "可能" 会被移除 (这里讲的是 "可能",因为垃圾收集机制不是每一次都会作用 的,网站越热门的,其状态越正确。See Also: session.gc_probability, session.gc_divisor)。 经由上述变化处理,就可以很容易达成类似 BBS 的连线统计功能,可以有来源 IP, 连线数, idle 时间, ... 等 ,结果呈现可以参考以下 URL: http://career.zhupiter.com/account/usrlst.php -- jjdai --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.64.48.105
1F:→ BlackCrazy:这样作耗不耗资源? 10/14 23:31
2F:→ jjdai:启动session相对没有启用是比较耗资源,但自己去算也多少会 10/15 23:43
3F:→ jjdai:花费一些资源。使用mem. db. 去记session更耗,但跑起来应该 10/15 23:46
4F:→ jjdai:比较有效率,且可适用於分散式的server farm。这方法用於 10/15 23:48
5F:→ jjdai:为了要实现类似 BBS 使用者列表的功能时,可能比较适合>< 10/15 23:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP