请选择 进入手机版 | 继续访问电脑版
我的账户
好麦麦源码网

优质互联网资源

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

【技术分享】基于Swoole简单群聊小功能的实现

1
回复
6065
查看
[复制链接]

603

主题

609

帖子

11万

积分

管理员

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2020-6-24 16:21:49 | 显示全部楼层 |阅读模式
昨天开始学的Swoole


作为学习路上的一个记录吧


也给还没开始学Swoole的同学提供一个Swoole基础的小案例


基于Swoole的Websocket


swoole.png

Websocket部分
  1. <?php
  2. /**
  3. * Class SwooleWs
  4. * WebSocket Study
  5. */
  6. class SwooleWs{
  7.     protected $ws;

  8.     public function __construct()
  9.     {
  10.         $this->ws = new Swoole\WebSocket\Server("0.0.0.0", 9501);
  11.         //连接
  12.         $this->ws->on('open',[$this,'open']);
  13.         //消息发送
  14.         $this->ws->on('message',[$this,'message']);
  15.         //关闭
  16.         $this->ws->on('close',[$this,'close']);
  17.         //启动
  18.         $this->ws->start();
  19.     }

  20.     public function open($server, $request)
  21.     {
  22.         echo "客户端{$request->fd}已连接\n";
  23.     }

  24.     public function message($server, $frame)
  25.     {
  26.         foreach ($server->connections as $fd){
  27.             $frame->fd == $fd ? $oop="我:" : $oop = "用户".$frame->fd.":";
  28.             $server->push($fd, $oop.$frame->data);
  29.         }

  30.     }

  31.     public function close($ser, $fd)
  32.     {
  33.         echo "客户端{$fd} 退出\n";
  34.     }
  35. }
  36. new SwooleWs();
复制代码


JS部分
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Swoole NO 1</title>
  6. </head>
  7. <body>
  8.     <h1 id="state"></h1>
  9.     <input type="text" placeholder="请输入发送内容:" id="msg">
  10.     <input type="button" value="发送消息" onclick="send()">
  11.     <div id="chat">
  12.     </div>
  13. </body>
  14. </html>
  15. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
  16. <script>
  17.     var wsServer = 'ws://你的外网IP:9501';
  18.     var websocket = new WebSocket(wsServer);
  19.     websocket.onopen = function (evt) {
  20.         $('#state').text('恭喜,服务器连接成功');
  21.     };

  22.     websocket.onclose = function (evt) {
  23.         console.log("Disconnected");
  24.     };

  25.     websocket.onmessage = function (evt) {
  26.         $('#chat').append("<p>"+evt.data+"</p>");
  27.     };

  28.     websocket.onerror = function (evt, e) {
  29.         $('#state').text('服务器连接失败');
  30.     };

  31.     function send(){
  32.         let msg = $('#msg').val();
  33.         websocket.send(msg);
  34.     }
  35. </script>
复制代码


第一:加入vip会员,全站99.9%源码免费下载 加入地址http://www.haomaim.cn/plugin.php?id=threed_vip

0

主题

3

帖子

7

积分

普通会员

Rank: 3Rank: 3

发表于 2020-8-3 20:14:16 | 显示全部楼层
啥也不说了,感谢好麦麦源码分享哇!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

尊贵VIP购买
关注我们
官方公众号

客服微信:liangyan6969

客服邮箱:1784605674@qq.com

周一至周五 9:00-18:00

HAOMAIM.CN

好麦麦源码网-始终坚持优质资源分享!( 皖ICP备16014583号-1 )

Powered by HAOMAIM© 2017-2020