物联网之实时通讯,使用WorkerMan创建websocket服务器

上篇文章讲述了如何利用Workerman创建Websocket实时通讯服务器,今天我们来说说如何利用Swoole创建Websocket服务器。

Swoole与Websocket的相同点在于,两者都是跑在PHP-cli模式下。但本质上有很大的区别。Websocket是纯PHP编写的通讯框架,而Swoole则是PHP的一个扩展。布署会有所区别,应用时则非常相似。

那么做通讯应用时该选哪一个呢?其实是没有一个很明确的说法。主要还是看你当前的业务模式、未来业务的发展方向以及规模,当然跟你业务的架构也有关系,小智就不随便推荐了。毕竟最适合自己的就是最好的。

接下来我们展开正题:

一、安装Swoole扩展

#!/bin/bash
pecl install swoole

正常情况下,键入命令后,就能进入自动安装流程。但这里需要注意的是如果安装的swoole4,需用的gcc编译器版本为4.8+。

二、创建websocket服务

创建一个websocket.php,并编辑其内容如下:

<?php
$server = new swoole_websocket_server("127.0.0.1", 9502);
$server->on('open', function($server, $req) {
 echo "connection open: {$req->fd}\n";
});
$server->on('message', function($server, $frame) {
 echo "received message: {$frame->data}\n";
 $server->push($frame->fd, json_encode(["hello", "world"]));
});
$server->on('close', function($server, $fd) {
 echo "connection close: {$fd}\n";
});
$server->start();

三、调试webocket

 从上图可以看出,测试结果正常。

好啦,这期就到这里啦,喜欢小智的同学们,请持续关注哦。后面会继续为大家带来更实用的知识。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐