想用laravel(6版本)实现即时聊天功能,无从下手

之前没有接触过这方面的东西,swoole也不会使用,望圈内大佬指点一二,感谢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 22
xiaochong0302

使用workman的解决方案非常的简单快捷

1年前 评论
Complicated

强烈推荐 workman

1年前 评论

lab.dogeow.com/chat 我写了个 demo(可能有 bug)

1年前 评论

一般浏览器来说前端用socketio.js,后端可用 workman。

1年前 评论

用封装好的框架去写散 很简单 getwayworker、hyperf都有,只需要实现对应 onMessage onClose啥的逻辑就行

1年前 评论

:sweat_smile:getwayworker简单 基于workerman封装的 直接用workerman反而麻烦 因为你需要保持心跳

给你讲一下理论吧
首先你把 getwayworker当成一个推送工具 你业务逻辑放在laravel处理 然后laravel把要通知的东西和getwayworker说 getwayworker再和前端建立一个链接 再和前端进行交互 首先就是不要把它当成那么复杂的东西 当成一个推送器中间的就行了

  • http 协议 请求 因为普通的http请求是 谁请求他 他就返回结果给谁
  • websocekt 协议 双工通信 只要连接了这个服务 那么这个服务可以向其他人返回 前提是得建立连接

那么这时候业务逻辑就是

1.先打开getwayworker 运行 php start.php
2.首先前端和getwayworker建立一个链接 new ws()具体不写了
3.然后发送个http请求到laravel对应的控制器 然后控制器对应的代码逻辑就是服务端也链接先打开getwayworker 向getwayworker发送数据(最好json格式,里面好判断这条信息发给谁)触发onmessage方法 之前不是已经建立链接了嘛前端和getwayworker 就推过去给前端

大体就这张图意思
Laravel
附上文档链接
www.workerman.net/doc/gateway-work...

1年前 评论
礼物粑粑 (楼主) 1年前

我有例子 自己做的 用workerman结合laravel来开发 ( 【利用workerman制作聊天室与客服效果-哔哩哔哩】 https://b23.tv/8Z9scIb) 事实告诉我不要用laravel-echo-Server 兄弟 这个坑千万不要去拆

1年前 评论

workerman分分钟写出来~

1年前 评论
礼物粑粑 (楼主) 1年前
勇敢的心 (作者) 1年前
礼物粑粑 (楼主) 1年前

看我的例子 可以做出来的 要和workerman配合

1年前 评论
礼物粑粑 (楼主) 1年前
wmhello (作者) 1年前
wmhello (作者) 1年前
礼物粑粑 (楼主) 1年前

websocket你可以理解成起了个服务去专门干与前端的长连接,像是php-fpm本身其实并不适合干这个 要不就是起node 比如laravel-echo 要不就是用workman

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!