配置在非WorkerMan项目中推送消息报错

yc

报错 GLOBAL_GATEWAY_ADDRESS is NULL

参照的 http://www.workerman.net/gatewaydoc/advanced/push.html
方法一、使用GatewayClient客户端推送

目录截图:

http://7xjcyk.com1.z0.glb.clouddn.com/屏幕快照%202015-08-26%20下午4.41.58.png

Config/Store.php 文件代码如下

class Store
{
    // 使用文件存储,注意使用文件存储无法支持workerman分布式部署
    const DRIVER_FILE = 1;
    // 使用memcache存储,支持workerman分布式部署
    const DRIVER_MC = 2;
    // 使用redis存储(推荐),支持workerman分布式部署
    const DRIVER_REDIS = 3;

     // DRIVER_FILE 或者 DRIVER_MC 或者 DRIVER_REDIS(推荐)
    public static $driver = self::DRIVER_FILE;

    // $driver为DRIVER_MC/DRIVER_REDIS时需要配置memcached/redis服务端ip和端口
    public static $gateway = array(
        '127.0.0.1:6379',
    );

    // 存储房间相关数据
    public static $room = array(
        '127.0.0.1:6379',
    );

    // $driver为DRIVER_FILE时要配置此项,实际配置在最下面一行
    public static $storePath = '';
}

// 默认系统临时目录下
Store::$storePath = dirname(__DIR__).'/chat/';

执行的方法:

require_once SITE_PATH.'GatewayClient/Gateway.php';
Gateway::sendToAll('{"type":"broadcast","content":"hello all"}');

求指点问题出在哪里呢?

3263 3 0
3个回答

walkor

Store::$storePath = dirname(__DIR__).'/chat/';
的值要一致,你可以写死比如为
Store::$storePath = '/tmp/chat/';

  • yc 2015-08-26

    这个的值要一致 指的是 跟什么路径地址一致呢?没听明白,还请赐教,谢谢

yc

这个的值要一致 指的是 跟什么路径地址一致呢?没听明白,还请赐教,谢谢

  • 暂无评论
walkor

如果是文件存储,两个配置中
Store::$storePath
的值要一样,这样二者才能联系起来,才能通讯
比如
Store::$storePath = '/data/chat/';
写成有写权限的路径

  • yc 2015-08-26

    懂了,Config/Store.php 和 /Applications/App/Config/Store.php 两个的配置要保持同一个路径,已经测试可以在项目中调用了,实在太感谢了

年代过于久远,无法发表回答
🔝