-安装workerman

首先通过 composer 安装
composer require topthink/think-worker -vvv

  

 如果报错:
Installation failed, reverting ./composer.json to its original cont

  

 则使用
composer require topthink/think-worker=1.0.* -vvv

  

 如果需要在window下做服务端,还需要
composer require workerman/workerman-for-win -vvv

  

-在thinkphp5根目录(即与application同级目录)创建server.php,编辑一下内容。 server.php 文件内容
define('APP_PATH', __DIR__ . '/application/');
define('BIND_MODULE','push/Worker');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';

  

-新建模块和控制器
创建workerman的controller,命名为Worker.php。在application/push/controller,目录不存在自行创建。添加以下内容:

  

-Worker.php。文件的内容
<?php

namespace app\push\controller;

use think\worker\Server;

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

  

-运行server.php
命令:php server.php

  

- 新建html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<body>
<script>
  ws = new WebSocket("ws://127.0.0.1:2346");
  ws.onopen = function() {
    alert("连接成功");
  ws.send('tom');
    alert("给服务端发送一个字符串:tom");
  };
  ws.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
  };
</script>
</body>
</html>

  

 原文:https://blog.csdn.net/qq_37322178/article/details/83715141 

thinkPHP5扩展workerman的更多相关文章

  1. thinkphp5+GatewayWorker+Workerman

    项目地址  ttps://www.workerman.net/workerman-chat thinkphp5+GatewayWorker+Workerman聊天室,可以多人聊天,指定某个人进行聊天, ...

  2. thinkphp5使用workerman定时器定时爬取某站点新闻资讯等内容

    1.首先通过 composer 安装workerman,在thinkphp5完全开发手册的扩展->coposer包->workerman有详细说明: #在项目根目录执行以下指令compos ...

  3. thinkphp5使用workerman的定时器定时任务在某一个时间执行

    1.首先通过 composer 安装workerman,在thinkphp5完全开发手册的扩展->coposer包->workerman有详细说明: #在项目根目录执行以下指令compos ...

  4. workerman与thinkphp结合

    运行workerman需要安装pcntl和event或者libevent pcntl安装方法: 以php-5.5.20为例,实际情况按自己安装的PHP目录 一. 找到PHP源码,进入 php-5.5. ...

  5. thinkphp5保存远程图片到本地

    代码 protected function saveImg($imgUrl){ $ext=strrchr($imgUrl,'.'); if(!in_array($ext,['.jpg','.png', ...

  6. Swoole和Workerman到底选谁?

    Swoole:面向生产环境的 PHP 异步网络通信引擎 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务.Swoole 可以广泛 ...

  7. php 加入即时推送功能

    打开浏览器保持与服务器握手的websocket 之前用workerman接过很花时间,现在workerman对其代码做了优化->https://www.workerman.net/web-sen ...

  8. php-m 与 phpinfo 不一致的解决办法

    1.查看PHP当前加载的php.ini文件地址,在控制台输入以下命令: 1 php -i | grep php.ini 2.控制台返回的信息 1 2 Configuration File (php.i ...

  9. Thinkphp5.0支付宝支付扩展库类库大全

    Thinkphp5.0支付宝支付扩展库类库大全,包括手机网站支付.电脑网站支付.支付查询.退款.退款查询.对账单等. Thinkphp5.0支付宝调用方法: 电脑网站支付 Pagepay.php 调用 ...

随机推荐

  1. ZooKeeper集群与Leader选举

    说说你对ZooKeeper集群与Leader选举的理解?   ZooKeeper是一个开源分布式协调服务.分布式数据一致性解决方案.可基于ZooKeeper实现命名服务.集群管理.Master选举.分 ...

  2. django 4.get接口开发

    根据上一篇文章,有post,那么就有get请求,其余部分不变,就是把post换成get就可以. #views.py from django.http.response import HttpRespo ...

  3. Educational Codeforces Round 63 (Rated for Div. 2)

    传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...

  4. Vue(小案例_vue+axios仿手机app)_购物车(计算商品总金额)

    一.前言                 1.计算总金额                 2.点击删除按钮,删除对应的商品信息                 3.当还没结算的时候,当用户跳到其他页面 ...

  5. 关于std::cin阻塞事件循环以及控制台命令输入功能的方案;

    如果将std::cin建立在主线程,将阻塞主线程的所有事件循环,因而要保证事件循环不受影响,需要将std::cin放到 子线程中.同时,如果要实现能够强制终止std::cin阻塞, 可以通过强制终止线 ...

  6. 移动开发常用head部分

    <!--[viewport] 设置布局viewport的各种信息: width=device-width:布局viewport宽度等于设备宽度 initial-scale=1.0:默认缩放比为1 ...

  7. windows命令提示符

    基本命令: d: cd wenjian cd.. dir -------------- ---- ------ ------ ------ ---- 维基:dos DOS,是磁盘操作系统(英文:Dis ...

  8. ARIMA模型原理

    一.时间序列分析 北京每年每个月旅客的人数,上海飞往北京每年的游客人数等类似这种顾客数.访问量.股价等都是时间序列数据.这些数据会随着时间变化而变化.时间序列数据的特点是数据会随时间的变化而变化. 随 ...

  9. springMVC的controller

    控制器controller 负责处理DispatcherServlet分发请求,把业务处理层封装成一个model,然后把该model返回给对应的view. @Controller 用于标记在一个类上, ...

  10. ”dpkg: 处理归档 /var/cache/apt/archives/XXXXXX(--unpack)时出错“的解决方法

    在安装ROS时出现了下面的问题: 解决方法: sudo dpkg -i --force-overwrite <filename> 在我的问题中我的解决方法是: sudo dpkg -i - ...