Rumah pembangunan bahagian belakang tutorial php 关于用户在线与离线的判断有关问题

关于用户在线与离线的判断有关问题

Jun 13, 2016 am 11:19 AM
data nbsp php session

关于用户在线与离线的判断问题!
首先需求是做一个显示在线用户昵称和在线人数。

然后个人的思路是在用户表里面做一个字段用来标记用户在线(1)或者不在线(0),当用户登录的时候就设置这个字段为1,当用户通过正常渠道(即点击安全退出)退出的时候就设置这个字段为0.这样就显示在线用户的话就可以定时刷新一次,这种情况下功能是没有任何问题的,但是例外情况就是用户不点击安全退出而是直接就关闭浏览器了,那这样这个用户岂不是永远都在线了?所以我的问题是如何处理当用户通过非正常渠道离开之后也能检测到他是否在线。

请大神帮忙~~~~


------解决方案--------------------
每个页面中都加入公共js文件,里面的某个js函数负责定时向某php文件(如a.php)发送ajax请求。最后请求时间由a.php每次写入session

比如设定每2分钟发送一次请求。在需要获取用户是否在线的页面上,读出session里的最后请求时间,当前时间减去最后请求时间,若大于2分钟,则用户已离线。
------解决方案--------------------
这个问题网上可以顺手找到很多案例。
如果想采用最轻巧的,可以统计session临时文件数量或其它存储方式的单元数量,来确定当前20分钟内有多少在线。当然,这个时间精确度可以缩小到一分钟(随之而增长的是会话回收机制的消耗)。
无论采取任何方案,这个功能还是对服务器有不少消耗,如果不是很必要,建议放弃。
------解决方案--------------------
正确的思路并且不借助memcache等第三方工具的方法是
分析:在线统计难点是在于不存在全局共享的方法
解析办法:
利用文件来保存在线用户的信息,这样对文本的处理实际上还比数据库快很多(php连数据库的时间就已经超过了php读取一个小文本的时间)
文本里保存的格式为数组,格式为
<br /><?php<br />return array(<br />   20312=>13671927362,//key值为用户uid    value值当用户登陆的时间戳<br />   20313=>13671927363,<br />);<br />
Salin selepas log masuk

1:当用户登陆时,获取当前时间戳,session记录用户id
2:然后获取文本里的文件,里面保存了在线用户的信息,判断当前uid是否存在这里面,不存在就插入,然后继续保存
3:在线人数获取,就读取文件,然后count出在线人数
4:只要当访问这个文件的时候(不管你是准备统计在线人数,还是有新用户加入),遍历文本里的数据,判断各个用户的时间戳是否小于当前时间戳并超过半小时,如果是,那么就去掉这个用户信息.
实现步骤关键点:
以数组获取文本
$online=require 'xxx.php';
以数组保存文本
$data[1111]=123748492;
file_put_contents('xx.php','');
不谢!
------解决方案--------------------
存入普通文件的关键,是写入时候的资源独占问题。
------解决方案--------------------
引用:
每次session临时文件是靠sessionId,sessionId不一样,生成临时文件目录都不一样.
我存在的疑问:
1:能够读取临时文件夹的session文件吗?它是否有被加密过?还是纯文本?
2:如果是文本?里面存的就是session的内容?那么那些数组,对象是如何被存入文本的?(数组还可以,对象是怎么存入文本的?)

1、当然可以读取 session 临时文件。你可以在 session.save_path 指定的地方找到他们
2、session 临时文件是纯文本文件。是用简化的序列化格式存储的,php 已然提供了 session 序列化和反序列化的函数。你自己看一下就知道了

你们都在讨论如何存储的问题,其实如何存储并不是主要问题
关键在于“如何识别”,既然一致认为“非正常渠道离开”的检查是需要轮询的。那就把的种方案都弄出来PK一下就是了(假定有一万个用户在线)
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Pembalakan CakePHP Pembalakan CakePHP Sep 10, 2024 pm 05:26 PM

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

See all articles