gatewayworker同laravel的整合

michael

场景:站群系统,每个站一个site id区分。每个站一个域名。前后端分离。
框架:laravel
问题:

使用gatewaywork进行消息通知。想使用redis绑定。那么请问下gatewayclient的哪些joinGroup,bindUid之类很方便的函数还能用吗?
我在框架里面用gatewayclient库,bindUid后应该是保存到PHP服务器的session里面。同1,这怎么用redis来代替呢?如果替换bindUid这些函数还能用么?
心跳我想设置成服务器端发送,客户端回应。这种方式是不是相对于客户端请求,服务器端响应对服务器端的压力要大一些?一般来说多少秒比较合适。我听同事说1s发送一次,不影响性能。不知道对否。

初次接触socket很多不清楚。还望指教!谢谢

6190 3 0
3个回答

walkor

1、能用
2、gatewayclient 的bindUid是将uid和client_id保存在gatewayWorker里。bindUid实际上就是将uid和client_id的对应关系存储起来,存redis也可以。如果替换sendToUid、isUidOnline等和uid有关这些方法要自己实现,原方法将不起作用

3、压力差不。心跳1s一次太频繁了,对性能有影响,心跳一分钟以内就行。

  • 暂无评论
michael

@walkor

如果用redis的话。在gatewayworker里面需要怎么样的配置才能跑呢?确实是没有找到相关的资料。只知道一个安装扩展这是必须的。然后有个Config/Store.php。都不知道放在什么地方。这个文件有了。是需要在OnwrokerStart里面初始化么?我看了下文件是需要初始化一个businessWorker。但确实不知道怎么来设置?有没有什么demo可参考的?不甚感激!

  • 暂无评论
walkor

Config/Store.php是很老的GatewayWorker才有的,现在已经废弃删掉了。

装redis扩展就好了,用的时候参考他们的手册,类似这样用就行了。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

redis扩展本来就很简单,用不到什么封装。

  • 暂无评论
年代过于久远,无法发表回答
🔝