phpsocket.io开启多进程 能开么

mazhaozi

如果加上$worker->count=3;
clinet连接socket.io 报400错误
问下 是不是socket.io 不允许开多进程

阅读 2410
9个回答

walkor

不能直接多进程,可以多端口多实例的方式开多进程。

  • mazhaozi 2016-08-04

    client端 轮询使用 这几个端口么?

  • walkor 2016-08-04

    也可以轮询,一般做法是在多实例前加一层nginx代理,根据ip代理到固定的对应的端口上

  • mazhaozi 2016-08-06

    @1:额 晓得了 类似与负载均衡 加权轮询是么

  • walkor 2016-08-06

Acolor

请问,为什么不能直接多进程,具体什么意思,小弟刚接触。

  • 暂无评论
walkor

phpsocket机制决定的,只能单进程

  • 暂无评论
Acolor

用phpsocket实现推送的例子,phpsocket和workerman什么关系,分别是用来处理什么。我的理解是phpsocket用来处理和前端js的socket连接,那么workerman是做什么呢,这么理解对不对,烦请拆解下,谢谢

  • 暂无评论
walkor

phpsocket.io是基于workerman开发的

  • 暂无评论
Acolor

能具体点么,workerman不能处理前端的socket连接么?那phpsocket具体是做什么作用呢

  • 暂无评论
walkor

在即时通讯领域phpsocket.io对浏览器兼容性更好,在浏览器不支持websocket的时候可以自动降级成comet,实现实时通讯。这个降级对于开发者是无感知的,开发者只需要去实现业务就好了。使用phpsocket.io客户端必须有socket.io 客户端,否则无法通讯。

而workerman本身是一个通用的socket框架,正因为通用,所以本身没有做这些兼容,也没有必须用某个客户端这样限制,客户端可能是硬件,可能是浏览器、可能是手机app、可能是游戏客户端等等。协议可以是http、可以是websocket、可以是text 、frame等等任何协议或者自定义协议,进程数或者服务器数可以根据业务需要自己架构设计。

  • 暂无评论
Acolor

谢谢。我测试了如果页面关闭,关闭浏览器,socket连接会减少,如果一直放着不动,时间长了之后socket会关闭否,这个超时时间是在哪里设置呢,没有看到系统配置的地方。

  • 暂无评论
walkor

自带心跳,可以保活,一直维持链接不断。

  • 暂无评论