think5php的使用,Workerman和ThinkPHP5的结合使用
最近学习使用Workerman,框架使用ThinkPHP5.参考官网ThinkPHP5.0完全开发手册完全不知所云!幸好自己摸索得出经验,一下为参考方法。首先通过 composer 安装composer require topthink/think-workercomposer require workerman/workerman-for-win(注意环境为linux,所以如果你时windows
最近学习使用Workerman,框架使用ThinkPHP5.参考官网ThinkPHP5.0完全开发手册完全不知所云!幸好自己摸索得出经验,一下为参考方法。
首先通过 composer 安装
composer require topthink/think-worker
composer require workerman/workerman-for-win
(注意环境为linux,所以如果你时windows,请composer require workerman/workerman-for-win)
新增启动服务文件server.php,在项目根目录(yourproj/public)
define('APP_PATH', __DIR__ . '/application/');
//其实和index.php文件内容一样,不过多绑定了一个模块用于server启动
define('BIND_MODULE','server/index/index');
require __DIR__ . '/thinkphp/start.php';
新增服务处理模块server,监听2346端口
namespace app\sever\controller;
use Workerman\Worker;
class Index
{
// 创建一个Worker监听2346端口,使用websocket协议通讯
$ws_worker = new Worker("websocket://0.0.0.0:2346");
public function index()
{
// 创建一个Worker监听2346端口,使用websocket协议通讯
$ws_worker = new Worker("websocket://0.0.0.0:2346");
// 启动4个进程对外提供服务
$ws_worker->count = 4;
// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function($connection, $data)
{
// 向客户端发送hello $data
$connection->send('Hello: ' . $data);
};
// 运行worker
Worker::runAll();
}
进入public文件夹,在命令行下运行,启动监听服务
php server.php start
打开chrome浏览器,先打开push.app域名下的网页(js跨域不能通讯),按F12打开调试控制台,在Console一栏输入(或者把下面代码放入到html页面用js运行)
ws = new WebSocket("ws://push.app:2346");
ws.onopen = function() {
alert("连接成功");
ws.send('tom');
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服务端的消息:" + e.data);
};
继续测试
ws.send('保持连接,发第二次信息,查看服务器回应');
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)