报错 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"}');
求指点问题出在哪里呢?
Store::$storePath = dirname(__DIR__).'/chat/';
的值要一致,你可以写死比如为
Store::$storePath = '/tmp/chat/';
这个的值要一致 指的是 跟什么路径地址一致呢?没听明白,还请赐教,谢谢
这个的值要一致 指的是 跟什么路径地址一致呢?没听明白,还请赐教,谢谢
如果是文件存储,两个配置中
Store::$storePath
的值要一样,这样二者才能联系起来,才能通讯
比如
Store::$storePath = '/data/chat/';
写成有写权限的路径
懂了,Config/Store.php 和 /Applications/App/Config/Store.php 两个的配置要保持同一个路径,已经测试可以在项目中调用了,实在太感谢了