PHP扩展练习之swoole安装和基于socket聊天室使用小例子

    前两天,在boss上有位大佬给我打了个电话,问我有没有考虑跳槽。。。我是那么没有立场的人么,当即就问了下到人家那里任职需要什么条件???完事聊了好多。太具体的记不太清楚了。不过有一个比较重要的就是必须熟练掌握swoole编程。。。

    WTF,这个swoole对于我来说还是有点印象的,只知道它是PHP的一个扩展,貌似功能挺强大的,但是也一直没有深究。这次既然人家大佬都问了这个了,估计是挺重要的。所以本人就。。。你懂得哈。废话不多说,直接来看内容。

    首先嘞,就是安装了。我是在ubantu环境下测试的,所以有点不一样哈。最简单的,可以直接通过PHP的pcel编译安装直接装上swoole扩展。命令如下:

pecl install swoole

    再来就是下载源码包。下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装:

cd swoole
phpize
./configure
make 
sudo make install

    下面是本人整理的一部分源码包地址:

    安装完事之后就来写一下代码测试下哈。咱也不说啥什么服务器啦啥的,websocket这个东西大家应该都知道。所以,咱们就用这个swoole扩展来做一个聊天室。

    首先是服务器上的代码(暂定test.php文件):
$server = new swoole_websocket_server("192.168.10.3", 8080);

$server->on('open', function (swoole_websocket_server $server, $request) {
    file_put_contents( __DIR__ .'/log.txt' , $request->fd);
});

$server->on('message', function (swoole_websocket_server $server, $frame) {
    global $client;
    $data = $frame->data;
    $m = file_get_contents( __DIR__ .'/log.txt');
    for ($i=1 ; $i<= $m ; $i++) {
        echo PHP_EOL . '  i is  ' . $i .  '  data  is '.$data  . '  m = ' . $m;
        $server->push($i, $data );
    }

});

$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});

    完事我在网上弄了一部分html代码,大家将就的看下哈:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="UTF-8">
  <script type="text/javascript">
  var exampleSocket = new WebSocket("ws://192.168.10.3:8080");
  exampleSocket.onopen = function (event) {
    exampleSocket.send("亲爱的服务器!我连上你啦!");
  };
  exampleSocket.onmessage = function (event) {
    console.log(event.data);
  }
  </script>
</head>
<body>
<input  type="text" id="content">
<button  οnclick="exampleSocket.send( document.getElementById('content').value )">发送</button>
</body>
</html>

    完事之后,在服务器上使用php test.php这个命令运行文件之后,就可以在浏览器上打开这个html文件,然后进行聊天了。我是使用console打印了接收的值,大家可以再次加工下,或者弄个好看的页面,就算是完事了。这是可以群聊的哦。

    优化下的话,就可以做一个聊天软件咯。大家可以将就看下。。。

    如果感觉不错的话,请多多点赞支持哦。。。。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值