国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php中同一個賬號同時只能一個人登錄程序

2024-05-04 21:49:42
字體:
來源:轉載
供稿:網(wǎng)友

通常情況下我們用戶可以多個人同時登錄了,但有時客戶需求我們需要的是同一個賬號同時只能一個人登錄了,下面我們就一起來看此問題的解決辦法.

以前考慮過這個問題,今天實現(xiàn)了一下,挺快的,從研究到開發(fā)完成差不多4個小時,有點類似QQ,二臺電腦登錄,一臺會把另一臺擠掉線,并提示其他地點登錄信息.

一,實現(xiàn)原理

1,用戶在電腦A登錄,session信息存放在redis當中,并將session_id存到mysql數(shù)據(jù)庫中。

2,同一用戶在電腦B登錄,驗證完用戶名和密碼后,將該用戶信息從數(shù)據(jù)庫讀出,取得用戶在電腦A登錄的session_id,然后在到redis中驗證session是否過期。

3,如果過期,不用openfire推送提示信息。如果沒有過期,php利用openfire推送消息后,在將redis中用戶在電腦A中登錄的session刪除掉,刪除后,在將用戶在電腦B登錄的個人信息放到session中,并將電腦B登錄的session_id更新到數(shù)據(jù)庫中,在這里一定要先發(fā)送推送,然后在清空session,不然用戶在電腦A收不到xmpp發(fā)過來的消息。

注意:openfire是java cms的一種,自身有數(shù)據(jù)庫,您創(chuàng)建的用戶表根openfire自帶的用戶表之間要建立某種聯(lián)系(如:手機號,郵箱等),方便信息推送。

同一session_id肯定是在相同媒介上登錄的,這個時候,也不用更新數(shù)據(jù)庫和推送消息

下面簡單說一下安裝過程,以及要注意的地方。

二,安裝所用到的工具

# yum install php php-fpm nginx mysql mysql-server redis php-redis php-devel php-pdo php-mysql

修改session存儲方式:

  1. # vim /etc/php-fpm.d/www.conf      
  2.    
  3. ;php_value[session.save_handler] = files   //注釋掉舊的   
  4. ;php_value[session.save_path] = /var/lib/php/session   
  5. //開源軟件:Vevb.com 
  6. php_value[session.save_handler] = redis  //添加以下內容   
  7. php_value[session.save_path] = "tcp://127.0.0.1:6379"  

啟動服務后,如果以下內容說明,session存redis成功了.

redis telnet查看session

redis telnet查看session

openfire下載地址:http://www.igniterealtime.org/downloads/

# rpm -ivh ./*.rpm //下載的是rpm安裝包

openfire啟動后,然后訪問http://ip:9090,一步一步配置就成了,有一點要注意就是數(shù)據(jù)庫的編碼.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三门县| 固安县| 咸阳市| 诸城市| 江源县| 象山县| 乌拉特前旗| 平阳县| 珠海市| 措美县| 松原市| 嘉义县| SHOW| 华亭县| 灵丘县| 关岭| 泾川县| 霍山县| 台北市| 察隅县| 竹山县| 海兴县| 靖远县| 洪湖市| 美姑县| 闽侯县| 阜宁县| 慈溪市| 会同县| 通榆县| 永丰县| 阆中市| 和田市| 竹北市| 金川县| 鹤峰县| 谢通门县| 天门市| 东光县| 金门县| 合川市|