GatewayWorker

 

Gateway::sendToClient

说明:

void Gateway::sendToClient(string $client_id, string $send_data);

向客户端client_id发送$send_data数据。如果client_id对应的客户端不存在或者不在线则自动丢弃发送数据

参数

  • $client_id

客户端连接的client_id

  • $send_data

要发送的数据(字符串类型),此数据会被Gateway所使用协议的encode方法打包后再发送给客户端

返回值

因为数据发送是异步进行的,所以没有返回值。一般来说只要客户端在线就可以发送成功。

发送前先可以用Gateway::isOnline判断下客户端是否在线。

 

Gateway::sendToUid

说明:

void Gateway::sendToUid(mixed $uid, string $message);

向uid绑定的所有在线client_id发送数据。

注意:默认uid与client_id是一对多的关系,如果当前uid下绑定了多个client_id,则多个client_id对应的客户端都会收到消息,这类似于PC QQ和手机QQ同时在线接收消息。

参数

  • $uid

uid可以是字符串、数字、或者包含uid的数组。如果为数组,则是给数组内所有uid发送数据

  • $message

要发送的数据(字符串类型),此数据会被Gateway所使用协议的encode方法打包后再发送给客户端

返回值

因为数据发送是异步进行的,所以没有返回值。一般来说只要uid在线就可以发送成功。

发送前先可以用Gateway::getClientIdByUid判断下uid是否有在线的client_id。

 

Gateway::bindUid

说明:

void Gateway::bindUid(string $client_id, mixed $uid);

将client_id与uid绑定,以便通过Gateway::sendToUid($uid)发送数据,通过Gateway::isUidOnline($uid)用户是否在线。

uid解释:这里uid泛指用户id或者设备id,用来唯一确定一个客户端用户或者设备。

注意:

1、uid与client_id是一对多的关系,系统允许一个uid下有多个client_id。

2、但是一个client_id只能绑定一个uid,如果绑定多次uid,则只有最后一次绑定有效。

2、如果业务需要一对一的关系,可以通过Gateway::getClientIdByUid($uid)获得某uid已经绑定的所有client_id,然后调用closeClient($client_id)踢掉之前的client_id。

3、client_id下线(连接断开)时会自动执行解绑,开发者无需调用Gateway::unbindUid解绑。

4、如果某个uid对应的所有client_id都下线了,则调用Gateway::isUidOnline($uid)将返回0,即uid不在线。

5、uid和client_id映射关系存储在Gateway进程内存中。

6、调用Gateway::bindUid($client_id, $uid)的时机一般是在验证连接合法性的时候。例如客户端连上服务端后,发送的第一个数据包应当包含客户端的鉴权信息(例如用户名密码或者可用于鉴权的token),服务端通过鉴权信息确定该连接属于哪个uid,然后调用Gateway::bindUid($client_id, $uid)绑定。

参数

  • $client_id

客户端的client_id

  • $uid

uid,可以是数字或者字符串。

返回值

无返回值

 

 

 

 

//才显示信息  发送的数据=接受的数据 

if(toid ==message.fromid){

    $(".chat-content").append('<div class="chat-text section-left flex"><span class="char-img" style="background-image: url(http://chat.com/static/newcj/img/123.jpg)"></span><span class="text"><i class="icon icon-sanjiao4 t-32"></i>'+message.data+'</span></div>');

}

下面两个图是不相等所有收不到   60怎么发50都接受不到

 

 

 

 

 #ajax提交存在的控制器

 api\controller\save_message

 

#初始化 

switch(message.type) 

 

 

参考资料

http://doc2.workerman.net/send-to-uid.html

posted @ 2019-06-03 17:18  来阿里啊呀  阅读(889)  评论(0)    收藏  举报