多进程如何共享socket资源?

现在有一个需求,开发语言PHP,在线等大佬提供思路:

服务端开启一个tcp服务,多个客户端来连接,客户端ip和端口不确定,所以需要服务端保存客户端socket资源,供其他进程使用。

阅读 327
3 个回答
新手上路,请多包涵

描述来看建议使用websocket,可以考虑使用基于workerman的GatewayWorker

新手上路,请多包涵

我正好在做,直接和你说解决方案吧。

首先链接是有状态的,与server绑定。在链接成功后将 (hostname+fd)存储进入数据库,并且本机保存该fd的状态。

服务端对该链接的操作都发送给队列,需要带上元信息(hostname+fd),队列采用广播形式,各个消费者接受到消息以后,比对自己的hostname是否一致,一致情况下才会对该FD进行操作。

这个重点就在利用队列将无状态的接口请求,通过广播形式传送到socket的server进行下一步操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏