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
在这里插入图片描述

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
在这里插入图片描述

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

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值