PHP中send_command什么意思,手册上的与thinkphp结合那边send_message.php(利用GatewayClient发送)是怎么触发的??...

server端可以完全跟我们常用的web端框架分离部署,比如你的web应用根目录是A,server端的目录(也就是GatewayWorker的目录)是B,

A跟B,没有任何联系,可以任意分离部署,完全没有任何影响

一开始,你启动server端,让服务启动起来,然后,

比如你有个order页面,在这个页面上的Js代码中,写上文档示例中的js代码,一旦通过浏览器访问这个页面,

那么这个页面也就跟server端通过websocket建立了连接,js中的ajax中的URL,请求的是控制器里面任意一个方法,这个方法是专门用来做绑定clientId跟uId的,

这个时候,就需要用到 GatewayClient/Gateway.php 这个文件,以TP5来说,你可以把它当做一个第三方类库引入框架里,也就是放在根目录下的extend目录中,

此时注意命名空间,然后回到控制器,在这个绑定的方法中,可以直接照搬示例中bind.php的代码,因为需要用到 Gateway 这个类,

接着,假如,我们有个业务,用户下单后,要推送一条消息给用户,那么,你就可以在你的控制器里面,写一个方法,

这个方法具体做什么呢,按照刚才我们假定的需求,写一段下单的代码后,然后就把示例中 Gateway::sendToUid($uid, $message); 这段代码加到刚才那段下单的

代码后面(这段代码你可以放在任何可以正常使用的地方,这里只是做演示,所以耦合在一起),

这个有点类似于 laravel 中的事件触发,用户下单,这个动作,这个操作,触发了一个事件,在这里,这个事件就是 推送消息

假如此时,用户在order页面上,进行了下单这个操作,那么,就会通过http请求到我们的web端,

根据刚才那段代码,触发 推送消息 这个事件,也就是执行那段 Gateway::sendToUid($uid, $message);

如果用户没有关闭order这个页面,那么页面上就会根据那段JS代码,进行消息提醒,这个示例的大致流程就是这样

总的来说就是-

启动server(这个server不是web端,而是GatewayWorker)

->用户访问order页面(一旦访问,就建立了连接,并绑定)

->用户执行下单操作,触发推送事件

->页面收到server端推来的消息,并弹出提醒

示例中有一点要注意,不晓得是不是个例,send_message.php 中,Gateway::sendToUid($uid, $message);

这里的 $message 不能是 string 而应该是 类似

json_encode(array(

'status' => 0,

'message' => 'xxxxxx'

))

因为 页面中 js 部分 接收到的消息,最初应该是 jsonString

第一次接触这样的框架,跟以前开发web端,思路不太一样

才摸索了两天,还有很多不懂,希望向各位大神学习,共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值