這個教程寫 聊天框框架代碼解析
先看前端代碼打開
applications/Chat/Web/index.php 這個打開看
先初始化 init()
登錄成功 發(fā)json信息給服務(wù)端
var login_data = JSON.stringify({"type":"login","client_name":name,"room_id":<?php echo isset($_GET) ? $_GET : 1?>});
console.log("websocket握手成功,發(fā)送登錄數(shù)據(jù):"+login_data);
ws.send(login_data);
然后看服務(wù)端接收客戶端的數(shù)據(jù)
applications/Chat/Event.php 看這個文件
下面看函數(shù)是接受客戶端的數(shù)據(jù)
public static function onMessage($client_id, $message)
$message_data = json_decode($message, true);//解析json
下面邏輯不貼代碼了 我用簡潔的語言表達(dá)下
就是服務(wù)器收到的數(shù)據(jù)全部添加到memcache
$key = "ROOM_CLIENT_LIST-$room_id";
添加到了這個$key
首先會判斷這個$key是否有對應(yīng)的數(shù)據(jù) 如果沒有數(shù)據(jù)那就是新建1個數(shù)組 給key賦值
如果有 就添加到這個數(shù)組
(注?。?每次添加的時候 會清理不在線用戶哦)
以上邏輯代碼在這個函數(shù)
public static function addClientToRoom($room_id, $client_id, $client_name)
說完了 其他感覺沒什么好說的。。哪里不懂就留言吧
var login_data = JSON.stringify({"type":"login","client_name":name,"room_id":<?php echo isset($_GET) ? $_GET : 1?>});
這樣的數(shù)據(jù),下面能解析么??用這樣的代碼:public static function onMessage($client_id, $message)
$message_data = json_decode($message, true);//解析json 解析不了的吧,這個web頁面用的是websocket協(xié)議,直接json-decode 不行的啊