聊聊PHP+webSocket业务处理方案,学到就是你的。

首先Socket这个方案都很多种,webSocket也是其中的一种通信方案。在以前的PHP总,做这一项的事情是非常痛苦。虽然现在有了好多选择,比如Swoole还有Workerman等,可是一堆回调你能忍?由于Socket很多PHP框架都不太成熟,可是websocket这个协议到时帮了php不少问题。

我现在属于的团队前后端各站一半,在技术选型上也纠结了一点时间。我到底是选择Socket.io的php版本还是直接Socket.io的node.js版本。

指导Omi的作者说出了,腾讯文档是用 Socket.io这话,我突然回想起,网易云音乐、金十数据、imgur等运营的技术都是Socket.io,至于为什么这样,PHP做什么事情最擅长?答案无疑:WEB开发,创业公司的急救包。
让很多企业前期可以实现大吉大利,年终吃鸡的美梦。那么web的数据传输过程中,json是标配,那么是处理json最拿手?无疑是JavaScript。所以node.js的Socket.io无疑是最好的选择。

图中网易云使用的0.9.16的版本,已经能运行这么多年了,可见性能强悍,而且有成熟的分布式组件方案,可以横向扩展,性能不是瓶颈问题。

image.png

我先聊聊,项目业务之间是如何处理。
这是最简单和最理想的一种情况。

聊聊PHP+webSocket业务处理方案,学到就是你的。_第1张图片
image.png

但是我们后端代码是php,api数据接口层也是php。用的是laravel。laravel和socket.io是两个程序,而且现在的php的websocket客户端只要Swoole享用。

那么我们要怎么处理呢??这里我们需要用到是laravel的异步消息队列和爬虫原理。

这时候我们PHP这边的处理方式是以下方式。

聊聊PHP+webSocket业务处理方案,学到就是你的。_第2张图片
image.png

我们会在php制作一个页面来做渲染,在异步队列用把消息通过爬虫的原理把ws激活。页面内容如下。




    
    
    
    Document







为什么做异步,而不是同步呢?因为异步跑得是另一条线程,用户可以做其他事情,别人收到消息,回你做说吧,你平时和别人聊天的时候,也不会一直静静看着聊天框吧?

你可能感兴趣的:(聊聊PHP+webSocket业务处理方案,学到就是你的。)