1、下载Workerman插件

composer require topthink/think-worker

2、示例代码 后端

2.1 下载之后会得到这俩个文件

2.2 这个文件对应上面的worker_class 的地址

2.3.worker.php示例代码

<?php
namespace app\http;
use think\facade\Db;
use think\worker\Server;
use Workerman\Lib\Timer;
use app\model\IndexModel;
/*** websockect* Class Worker* @package app\http*/
class Worker extends Server
{protected $socket = 'http://0.0.0.0:2348';/*** 心跳检测* @var int*/protected static $heartbeat_time    =   55;public function onConnect($connection){var_dump('connect success');$connection->send(json_encode('connect success'));}## 接收消息,接收心跳消息 ,接收用户id 信息等等public function onMessage($connection,$data){$connection->lastMessageTime = time();#var_dump($data);$connection->send(json_encode('receive success'));}/*** 消息回调* @param $worker* @author 冬* @date 2022/5/5 17:07*/public function onWorkerStart($worker){//查看是否有新的下面的3是几秒推送一次Timer::add(3, function () use ($worker) {$time_now           = time();var_dump(date('Y-m-d H:i:s',$time_now) );## 推送的数据$infoObj =  IndexModel::getTips();$infoArr = json_decode(json_encode($infoObj),true);if (true) {foreach ($worker->connections as $connection) {if (empty($connection->lastMessageTime)) {$connection->lastMessageTime = $time_now;}var_dump(date('Y-m-d H:i:s',$connection->lastMessageTime) );if ($time_now - $connection->lastMessageTime > self::$heartbeat_time) {$connection->close();}$connection->send(json_encode($infoArr));}} else {var_dump(22);foreach ($worker->connections as $connection) {if (empty($connection->lastMessageTime)) {$connection->lastMessageTime = $time_now;continue;}if ($time_now - $connection->lastMessageTime > self::$heartbeat_time) {      //连接超时$connection->close();}}}});}public function onClose($connection){var_dump('close');}}

2.4 前端示例代码


<script>
let ws = new WebSocket("ws://127.0.0.1:2348")ws.onopen = function() {  //绑定连接事件console.log("连接成功");//每30秒发送一次心跳setInterval(function(){ws.send(JSON.stringify({'type':"peng"}));console.log('发送心跳...');},30000)};ws.onmessage = function(evt) {//绑定收到消息事件data = JSON.parse(evt.data)console.log(data);//这里处理收到的消息, type类型有两种: connectin、deposit如果有deposit要提示};ws.onclose = function(evt) { //绑定关闭或断开连接事件console.log("连接已关闭");
};</script>

3、开启服务 php think worker:server

4、打开前端页面查看是否链接成功

Thinkphp 使用Workerman 聊天室相关推荐

  1. php制作聊天室,workerman+thinkphp制作简易聊天室

    下面由workerman教程栏目给大家介绍制作简易聊天室的方法,希望对需要的朋友有所帮助! 1:环境在window下面的,thinkphp3.2 2:下载GatewayWork,放到 目录下 3:然后 ...

  2. 江湖聊天室php,workerman+thinkphp制作简易聊天室

    1:环境在window下面的,thinkphp3.2 2:下载GatewayWork,放到 目录下 3:然后双击打开 这个文件开启服务 4:所有的逻辑均在 Events.php这个文件里面 5:当用户 ...

  3. 聊天室 php ChatApi

    thinkphp workerman 聊天室所需api: ChatApi类说明: 聊天(用户,房间,好友,内容)的记录--已完成 聊天(用户,房间,好友,内容[可传递参数retention_data, ...

  4. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  5. tp5 + workerman 实现聊天室

    最近公司的项目需要做一个简单的聊天,项目用的框架是thinkphp 5,开发任务主要是实现买卖双方生成订单后,可以在线交流. 无意间在tp手册上看到 workerman socket包,然后就安装了试 ...

  6. php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  7. THINKPHP聊天软件H5实时聊天室自动分配账户全开源商业源码

    介绍: THINKPHP聊天软件H5实时聊天室,自动分配账户,全开源商业源码 都是去年买的,很多买的源码基本都下架了, 源码的优点: 运营版本的聊天室,可以添加好友,建立群组,私聊,禁言功能 H5+T ...

  8. laravel整合workerman做聊天室

    测试工具  http://www.blue-zero.com/WebSocket/ 2018年8月6日17:28:24 <?phpnamespace App\Console\Commands;u ...

  9. 视频教程-Workerman入门到精通实战layIM聊天室-PHP

    Workerman入门到精通实战layIM聊天室 多年一线互联网开发实战以及培训经验,对php开发,linux运维架构有丰富的经验,善于分析问题,解决问题. lampol ¥149.00 立即订阅 扫 ...

最新文章

  1. 五分钟使你的Firefox快两倍
  2. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
  3. java protected关键字_Java 权限protected关键字纠正
  4. c# mysql 连接
  5. 怎么调整矩形边框宽度_Illustrator实例教程:利用自定义画笔绘制中国风传统边框...
  6. Django之ORM的增删改查
  7. 【批处理学习笔记】第二十五课:间接传递
  8. java二维数组冷知识
  9. ecshop源码分析:会话类cls_session
  10. h5页面如何切图_HTML5自助切图
  11. 启用FM模块后F-02创建会计凭证报错,消息号FI313 “在项目 1 (2/3/4)中未输入/派生出投资中心“ - FMDERIVE
  12. html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...
  13. html项目经验范文,优秀的项目经验怎么写?
  14. mysql 备份多个库_使用mysqldump备份多个库
  15. cocos creater 鸿蒙 音频卡死 播放失败 不回调
  16. IM——基本系统架构
  17. 多元回归——matlab,R与spss
  18. Unity代码添加设置Tag或Layer
  19. 网易自媒体视频,批量修改md5采集下载上传,批量自动去水印加水印软件 今日头条自媒体视频,youtubu...
  20. [开源名人访谈录] Philippe Gerum

热门文章

  1. 智能自动写原创文章的软件
  2. 资管软件源码|信管家软件源码|通达信陪资|博易大师软件
  3. 2018-2019-2 20165330《网络对抗技术》Exp4 恶意代码分析
  4. PHP创建迅雷、快车、旋风链接
  5. 如何使用免费手机号归属地查询API快速获取手机号归属地,两种方法【源码可用】
  6. Python脚本处理文件
  7. 吴信东:数据挖掘算法的经典与现代
  8. 400个超实用的电脑快捷键
  9. linux如何停止自启动运行脚本
  10. 【uiautomation】微信好友列表获取(存储到txt中)