tp5运行workerman

由于公司需要做客服实时通讯的功能,对这方面还不是很熟悉,在网上看了很多资料,最后决定尝试使用tp5+workerman来学习。总结如下

1.使用composer下载workerman

linux环境下:
进入tp5框架的根目录,运行命令:composer require topthink/think-worker -vvv
如果出现报错,则加上版本号:composer require topthink/think-worker=1.0.* -vvv
windows环境下:
还要安装 composer require workerman/workerman-for-win -vvv
tp5运行workerman_第1张图片

2.在thinkphp5根目录(即与application同级目录)创建server.php,创建引导文件

内容如下:

define('APP_PATH',__DIR__.'/application/');
define('BIND_MODULE','push/Worker');
//加载框架引导文件
require __DIR__.'/thinkphp/start.php';

3.新建控制模块和控制器

在application目录下创建模块,命名为push
创建controller,命名为Worker.php,添加内容如下:

namespace app\push\controller;
use think\worker\Server;
class Worker extends Server{
public function onMessage($connection, $data){
 $connection->send('我收到你的信息了');
 }
 //当连接建立时触发的回调函数
 public function onConnect($connection){}
 //当连接断开时触发的回调函数
 public function onClose($connection){}
 //当客户端的连接上发生错误时触发
 public function onError($connection, $code, $msg){
 echo "error $code $msg\n";
 }
 //每个进程启动
 public function onWorkerStart($worker){
 }

创建视图view,命名为test,添加视图模板文件,命名为test.html,主要内容如下:

ws = new WebSocket("ws://127.0.0.1:2346");
//打开链接
ws.onopen = function() {
alert("连接成功");
//发送信息
ws.send('hello');
 };
 //接收函数
 ws.onmessage = function(e) {
 alert("收到服务端的消息:" + e.data);
 };

在controller下添加Test.php控制器,添加index方法,主要内容如下:

public function index(){
   return $this->fetch('test/test');
}

4.进入项目的根目录,运行server.php

命令:php server.php
tp5运行workerman_第2张图片

5.访问worker模块下的test控制器下的index方法。

tp5运行workerman_第3张图片

你可能感兴趣的:(tp5运行workerman)