小程序实时 对接 tp3.2 实现聊天通过 websocket

6 篇文章 0 订阅
4 篇文章 0 订阅

主要参考网址
https://blog.csdn.net/weixin_41326021/article/details/81004981 主要代码
https://blog.csdn.net/RemixGdc/article/details/77323753 解决报错参考
https://segmentfault.com/a/1190000011860113
https://segmentfault.com/q/1010000011503707
https://blog.csdn.net/qq_38912813/article/details/81540257
http://www.shanhuxueyuan.com/news/detail/49.html
https://wenda.workerman.net/question/1141
https://blog.csdn.net/tan1071923745/article/details/84589724
https://blog.csdn.net/qq_35713752/article/details/80811397#commentsedit
http://doc.workerman.net/faq/send-data-to-client.html 官方手册

第一步 安装 websocket 到 tp3.2 中运行

主要步骤

1  请参考   http://doc3.workerman.net/315116
   只需配置电脑的 环境变量 即可,如果没有 php环境 请安装
   
2  下载的 workerman 文件夹可以放在任何位置,能在workerman控制器中 引入即可
   我放在了 WWW\项目\application  目录下
   务必 修改 workerman 文件夹中除Constants.php之外的所有php文件后缀为 .class.php 格式,否则运行不起来
   
3 我在 WWW\项目\application\Wxapi\Controller 目录下新建了 WorkermanController.class.php

WorkermanController.class.php 内容如下

<?php

namespace Wxapi\Controller;
use Common\Controller\HomebaseController;

use Workerman\Worker;


class WorkermanController{


// 第一种方式 开启服务

// public function index(){
//     if(!IS_CLI){
//         die("无法直接访问,请通过命令行启动");
//     }
//     $worker = new \Workerman\Worker('websocket://0.0.0.0:8000');

//     // 当收到客户端发来的数据后返回hello $data给客户端
//     $worker->onWorkerStart = function($worker){
//         echo "Worker starting...\n";
//     };
//     $worker->onMessage = function($connection, $data)
//     {
//         // 向客户端发送hello $data
//         $connection->send('hello '.$data);
//     };
//     // 运行worker
//     Worker::runAll();
    
// }



// 进入项目根目录,执行下面的命令,即可运行 websocket
//                              php index.php Wxapi/Workerman


// 下面是第二种方法

public function index(){

    $socket = new \Workerman\Worker('websocket://0.0.0.0:8000');


    $socket->onMessage = function($connection, $data)
    {
        // 向客户端发送 $data
        $connection->send($data);
    };
    Worker::runAll();

}


}

通过以上 3 个步骤,在composer 命令行中 cd 进入 项目根目录,执行
php index.php Wxapi/Workerman 即可成功运行 workerman 服务

注意,我写的 Wxapi/Workerman  是我的 控制器文件夹名 加 控制器名,请根据 实际 修改

如果没有composer 可通过 phpstudy 右键,其他高级应用,选择 php composer 运行即可
反正,一定要在 命令行中运行
在这里插入图片描述

如何查看 workerman 服务是否开启

打开 google  F12 打开console 控制台,输入

// 假设服务端ip为127.0.0.1
ws = new WebSocket("ws://localhost:8000");
ws.onopen = function() {
    alert("连接成功");
    ws.send('tom');
    alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
};

即可,知道服务是否已开启

在这里插入图片描述

小程序方面 对接

请参考 https://blog.csdn.net/weixin_41326021/article/details/81004981

她这有源码,我就不上传了,只需要修改 websocket.js 中

// var url = 'ws://0.0.0.0:8000';   注意  必须用 localhost

var url = 'ws://localhost:8000';   这一条配置信息 ,即可

如果配置成功,那么即可成功实现聊天流程

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值