我在ubuntu14.01下用gateway调用redis,总是发生一些奇怪的问题
图一是在php中读取redis的结果,图二是在redis中的结果
而且经常会报 'RedisException' with message 'read error on connection' ,我也修改过php.ini,redis.conf中timeout值也为0.
我直接调用$redis->connect(),则不会发生这些问题
,源代码如下:
<?php
use \GatewayWorker\Lib\Gateway ;
use \GatewayWorker\Lib\Store ;
class Event
{
public static function onConnect($client_id)
{
$store = Store::instance("robot") ;
$store->hSet( 'clientRBlist' , $client_id , 0 ) ;
}
public static function onMessage($client_id, $message)
{
$data = json_decode( $message ,true ) ;
if( $data == 'ROBOT' )
{
if( $data == 'REGIST' )
{
self::robRegist( $client_id , $data ) ;
}
}
}
public static function onClose($client_id)
{
$store = Store::instance("robot") ;
//$clientRB = $store->hGetAll( 'clientRBlist') ;
//print_r($clientRB) ;
echo("*****".$client_id."--");
$client_type = $store->hGet( "clientRBlist" , $client_id ) ;
echo($client_type."\n") ;
}
public function robRegist( $client_id , $data )
{
$store = Store::instance("robot") ;
$store->hSet( 'clientRBlist' , $client_id , 'ROB' ) ;
Gateway::sendToClient( $client_id , '{"infomation":"Welcome","robotconnected":1}' ) ;
}
}
请问这个该怎么办?
程序里已经反序列化的内容,client中取的是未反序列化的。你程序中的值是对的就行了。
在程序中取得的并非正确的值,请注意client_id为470时,redis中为ROB,而程序中取得的是+PONG,显然有问题