代码如下:
1public static $db = null;
2 public static function onWorkerStart($worker)
3 {
4 //创建mysql实例
5 self::$db = new Workerman\MySQL\Connection('localhost', '3306', 'root', 'idriver', 'jdwuliu');
6 ...
7 }
8
9public static function onMessage($client_id, $data) {
10 $timer_id = Timer::add(3, function()use($client_id)
11 $gps_data = self::$db->select('gps_lon,gps_lat')->from("gps")->orderByDESC(array('u_id'))->limit(1)->query();
12 Gateway::sendToClient($client_id, json_encode($gps_data ));
13});
新建了一个mysql类的静态成员,保存数据库实例。然后在onMessage有个定时器,每隔三秒钟发送最新的gps给客户端,以上是代码逻辑。但是出现了报错,报错信息如下
PHP Fatal error: Cannot access self:: when no class scope is active in 11
就是在 $gps_data = self::$db->select('gps_lon,gps_lat')->from("gps")->orderByDESC(array('u_id'))->limit(1)->query(); 这一行报错 不知道是什么原因
哈哈 匿名函数里不能用self。因为匿名函数不属于任何类的方法。
这样应该可行,你试下
可以的,非常感谢!