{{userInfo.nickname}}
用户设置 退出登录

{{wikiTitle}}

消息事件处理

前台消息处理,文件存放在crmeb\services\workerman\chat\ChatHandle.php

客户端

JavaScript 发送消息

webSocket = new WebSocket('wss://www.crmeb.com/msg');

webSocket.onopen = function() {
    alert("连接成功");
    webSocket.send(JSON.stringify({
        type: 'test',
        data: {
            msg: '这是一个测试的消息'
        }
    }));
    alert("给服务端发送一个字符串");
};

webSocket.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
}

//发送一个type为status的消息
webSocket.send(JSON.stringify({
    type:"status",
    data: {
        msg: '我的状态改变为上线',
        value: 1
    }
}));

服务端

服务端接口消息并处理,需改文件crmeb\services\workerman\chat\ChatHandle.php


namespace crmeb\services\workerman\chat;

class ChatHandle
{

    //status事件类型处理
    public function status(TcpConnection &$connection, array $res, Response $response)    {
        $data = $res['data'];

        //打印JS发送的data.value
        var_dump($data['value']);

        //获取当前长链接的用户信息
        $connection->user;


        //处理好逻辑使用$response返回数据

        //参数1位返回给前台的消息类型
        //参数2位返回给前台的消息内容
        $response->send('message', ['']);
    }
}
{{cateWiki.like_num}}人点赞
0人点赞
评论({{cateWiki.comment_num}}) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} {{cateWiki.page_view_num}}人看过该文档
评论(0) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} 56人看过该文档
评论
{{item.user ? item.user.nickname : ''}} (自评)
{{item.content}}
{{item.create_time}} 删除
{{item.like ? item.like.like_num : 0}} {{replyIndex == index ? '取消回复' : '回复'}}
评论
{{items.user ? items.user.nickname : '暂无昵称'}} (自评)
{{items.content}}
{{items.create_time}} 删除
{{items.like ? items.like.like_num : 0}} {{replyIndexJ == (index+'|'+indexJ) ? '取消回复' : '回复'}}
评论
目录
  • {{item}}