ie是否支持websocket?
既然都用WebSocket(双向)了,其实完全可以用WebSocket向服务器提交数据,就不需要用AJAX再开一个HTTP(单向)连接了.
楼主的在线客服系统要把用户的消息保存到数据库,可以考虑先把消息存储在Redis里,在连接关闭时再把消息存储到MySQL,这样就变成了一个连接(WebSocket或HTTP keep-alive)对应一次数据库批量写,性能更好.
服务器端建议用PHP的Swoole,处理WebSocket请求就3个事件(onOpen/onMessage/onClose)的事.
不过需要注意的是,一些浏览器如ie9/IE8都是不支持WebSocket协议的,这时你可以考虑降级到HTTP(Swoole监听onRequest事件就能处理HTTP),用一个HTTP(AJAX)长轮询连接来实现消息通知,服务器端用Redis的PubSub实现消息通知,Swoole提供有异步Redis客户端,能实现异步订阅Redis频道实时获取消息.
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有