原则上是可以的。
可以使用 swoole 开启 websocket 功能。 websocket 出现的其中一个原因就是为了解决 ajax 轮询的空耗资源以及不及时性而出现的。
使用 websocket 后,不论是客户端还是服务器端有新消息都可以实时互相发送。不仅及时,同时可以避免空轮询。
但是 ajax 轮询也不是没有可取之处,比如说不需要即时获取消息的:如每隔一分钟查看一下是否有新公告。公告本身不需要即时获取的,同时公告本身也比较多的情况下。
还有就是本身就是打算要轮询的,比如每个5分钟发一个请求,目的就是保持当前用户在线状态的。
同时还有个比较致命的问题就是 websocket 相对于 ajax 轮询来说比较复杂。ajax 本身是建立在普通 http 请求上的,属于半双工操作,即客户端有些主动权,即我想获取信息时(事件触发)我就发个请求即可,然后在同一个进程里我继续等待服务器返回数据并做相应处理即可。但是 websocket 属于全双工操作,即客户端和服务器是对等的,服务器随时都有可能发消息给客户端,客户端也有可能随时发消息给服务端,程序思维不在是线性的了。需要重新架构你的程序。