Example #1
0
 /**
  * 向群中添加用户、删除用户
  */
 public static function setGroupMembers($paramArr)
 {
     $options = array('master' => '', 'uuid' => '', 'type' => 'add', 'userList' => array(), 'joinTime' => time());
     if (is_array($paramArr)) {
         $options = array_merge($options, $paramArr);
     }
     extract($options);
     if (!is_array($userList)) {
         return false;
     }
     $key = self::groupMembersKey($master, $uuid);
     if (!$key) {
         return false;
     }
     foreach ($userList as $user) {
         if ($type === 'add') {
             RedisModel::hashSet(self::$redisServer, $key, $user, $joinTime, 0);
         } elseif ($type === 'del') {
             RedisModel::hashDel(self::$redisServer, $key, $user);
         }
     }
     return RedisModel::exists(self::$redisServer, $key);
 }
Example #2
0
<?php

//test文件,压入数据的时候可以参考
use Workerman\Autoloader;
require_once '../../../Workerman/Autoloader.php';
Autoloader::setRootPath("../../");
//消息队列,向队列中rpush
//require 'Redis.php';
//use \Vendors\RedisQuene\Redisq;
use Vendors\Redis\RedisModel;
//RedisModel::set('webChat', 'aaa', 'bbbbgggggg');
//     RedisModel::hashSet('webChat', 'aaa', 'bbbbgggggg', 'dddd');
//      RedisModel::hashSet('webChat', 'USER_ONLINE_LIST', 'bbbbggg', 'dddd');
// 	$res = RedisModel::hashGet('webChat', 'aaa');
// 	var_dump($res);die;
$res = RedisModel::hashDel('webChat', 'wangjx:unread:msg', 'bbb');
var_dump($res);
die;
if (null === $res) {
    var_dump($res);
} else {
    var_dump(2222222);
}
die;
$a = substr(str_shuffle("qwertyuiopasdfghjklzxcvbnm"), 0, 4);
$b = substr(str_shuffle("qwertyuiopasdfghjklzxcvbnm"), 0, 4);
$messageVal = array('fromuser' => 'cuihb', 'touser' => 'xieyx', 'message' => $a . $b, 'time' => time());
Redisq::rpush(array('serverName' => 'webChat', 'key' => 'chat:message:quene', 'value' => serialize($messageVal)));
$long = Redisq::getSize(array('serverName' => 'webChat', 'key' => 'chat:message:quene'));
var_dump($long);
$arr = Redisq::range(array('serverName' => 'webChat', 'key' => 'chat:message:quene', 'offset' => 0, 'len' => -1));
Example #3
0
 /**
  * 不允许多用户登录
  * 剔除存储用户
  */
 public static function notAllowMoreClient($clientList, $clientName)
 {
     if (is_array($clientList)) {
         $unsetKey = array_keys($clientList, $clientName);
         if ($unsetKey) {
             Gateway::sendToAll(json_encode(array('type' => 'error', 'info' => 'loginconflict', 'msg' => '您已在另一客户端登陆')), $unsetKey);
             foreach ($unsetKey as $unkey) {
                 unset($clientList[$unkey]);
                 //下线用户
                 Gateway::closeClient($unkey);
                 //删除存储用户
                 RedisModel::hashDel('webChat', Storekey::USER_ONLINE_LIST, $unkey);
             }
         }
     }
     return;
 }
Example #4
0
 /**
  * 用户点击对话时删除该对话的离线消息
  */
 public static function delOneItemUnreadMsg($username, $chatid)
 {
     if (!$username || !$chatid) {
         return false;
     }
     return RedisModel::hashDel(self::$redisServer, $username . \Config\St\Storekey::UNREAD_MSG, $chatid);
 }