前端JS
/**
* 与GatewayWorker建立websocket连接,域名和端口改为你实际的域名端口,
* 其中端口为Gateway端口,即start_gateway.php指定的端口。
* start_gateway.php 中需要指定websocket协议,像这样
* $gateway = new Gateway(websocket://0.0.0.0:7272);
*/
ws = new WebSocket("ws://your_domain.com:7272");
// 服务端主动推送消息时会触发这里的onmessage
ws.onmessage = function(e){
console.log(e.data);
/*
// json数据转换成js对象
var data = eval("("+e.data+")");
var type = data.type || '';
switch(type){
// Events.php中返回的init类型的消息,将client_id发给后台进行uid绑定
case 'init':
// 利用jquery发起ajax请求,将client_id发给后端进行uid绑定
$.post('./bind.php', {client_id: data.client_id}, function(data){}, 'json');
break;
// 当mvc框架调用GatewayClient发消息时直接alert出来
default :
console.log(e.data);
}
*/
};
GatewayClient使用
GatewayWorker1.0请使用1.0版本的GatewayClient
GatewayWorker2.0.1-2.0.4请使用2.0.4版本的GatewayClient
GatewayWorker2.0.5-2.0.6版本请使用2.0.6版本的GatewayClient
GatewayWorker2.0.7版本请使用 2.0.7版本的GatewayClient
GatewayWorker3.0.0-3.0.7版本请使用 3.0.0版本的GatewayClient
GatewayWorker3.0.8及以上版本请使用 3.0.13版本的GatewayClient
注意:GatewayClient3.0.0以后支持composer并加了命名空间GatewayClient
如何查看GatewayWorker版本请点击这里
安装
方法一
composer require workerman/gatewayclient
使用时引入vendor/autoload.php 类似如下:
use GatewayClient\Gateway;
require_once '真实路径/vendor/autoload.php';
方法二 下载源文件到任意目录,手动引入 GatewayClient/Gateway.php , 类似如下:
use GatewayClient\Gateway;
require_once '真实路径/GatewayClient/Gateway.php';
使用
use GatewayClient\Gateway;
require_once '真实路径/vendor/autoload.php';
Gateway::$registerAddress = '127.0.0.1:1236';
Gateway::sendToAll($data);
Gateway::sendToClient($client_id, $data);
Gateway::closeClient($client_id);
Gateway::isOnline($client_id);
Gateway::bindUid($client_id, $uid);
Gateway::isUidOnline($uid);
Gateway::getClientIdByUid($uid);
Gateway::unbindUid($client_id, $uid);
Gateway::sendToUid($uid, $dat);
Gateway::joinGroup($client_id, $group);
Gateway::sendToGroup($group, $data);
Gateway::leaveGroup($client_id, $group);
Gateway::getClientCountByGroup($group);
Gateway::getClientSessionsByGroup($group);
Gateway::getAllClientCount();
Gateway::getAllClientSessions();
Gateway::setSession($client_id, $session);
Gateway::updateSession($client_id, $session);
Gateway::getSession($client_id);
参考
|