workerman教程2(新手必看)

0

这个教程写 聊天框框架代码解析


先看前端代码打开


applications/Chat/Web/index.php 这个打开看
先初始化 init()
登录成功 发json信息给服务端
var login_data = JSON.stringify({"type":"login","client_name":name,"room_id":<?php echo isset($_GET) ? $_GET : 1?>});
console.log("websocket握手成功,发送登录数据:"+login_data);
ws.send(login_data);


然后看服务端接收客户端的数据
applications/Chat/Event.php 看这个文件


下面看函数是接受客户端的数据
public static function onMessage($client_id, $message)


$message_data = json_decode($message, true);//解析json


下面逻辑不贴代码了 我用简洁的语言表达下


就是服务器收到的数据全部添加到memcache


$key = "ROOM_CLIENT_LIST-$room_id";
添加到了这个$key


首先会判断这个$key是否有对应的数据 如果没有数据那就是新建1个数组 给key赋值


如果有 就添加到这个数组


(注!! 每次添加的时候 会清理不在线用户哦)


以上逻辑代码在这个函数
public static function addClientToRoom($room_id, $client_id, $client_name)


说完了 其他感觉没什么好说的。。哪里不懂就留言吧

已邀请:

walkor

赞同来自:

chosen1cwp - it phper

赞同来自:

var login_data = JSON.stringify({"type":"login","client_name":name,"room_id":<?php echo isset($_GET) ? $_GET : 1?>});

这样的数据,下面能解析么??用这样的代码:public static function onMessage($client_id, $message)


$message_data = json_decode($message, true);//解析json 解析不了的吧,这个web页面用的是websocket协议,直接json-decode 不行的啊

要回复问题请先登录注册