thinkphp6 think-swoole websocket
2022-11-24 11:10:29
195
{{single.collect_count}}

什么是WebSocket?

WebSocket协议是基于TCP的一种新的网络协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
为什么需要WebSocket?-- HTTP的通信只能由客户端发起

WebSocket有哪些特点?

建立在TCP协议之上的
性能开销小,通信高效
客户端可以与任意的服务器进行通信
协议标识:ws、wss
持久化网络通信协议

WebSocket使用场景?

社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、基于位置的应用、在线教育……等需要高实时性的运用场景。

Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。

框架中开启 websocket enable true 开启
在这里插入图片描述
2.创建事件
php think make:listener WsConnect 创建开启事件
php think make:listener WsClose 创建关闭事件
php think make:listener WsTest 创建自定义测试事件
在自定义的测试事件中打印接收的值
在这里插入图片描述
3.在配置文件中定义事件 注意(Ws之后大写 注意上下里面的写法)
在这里插入图片描述
也可以写在config中的swoole中的websocket中的listen中,这个就不用大写了,和上面任选一个写法就可以

4.前端的写法 (暂时发现不用点击事件的话,直接写ws.send的方法是不行的)
在这里插入图片描述
5.之后服务器开启swoole获取发送的值
在这里插入图片描述

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}