我在代碼里寫了 $key = isset($_GET)?$_GET:false;可好像一直都是false 框架里是這么獲取的嗎??
例如前端js這樣調(diào)用
ws = new WebSocket("ws://workerman.net:7272/?name=xxx&password=xxx");
你是說的這個吧.
if(preg_match("/GET\s\/\?(.*?)\sHTTP\/1.1/", $message, $userinfo)){
$userinfo=string_turn_array($userinfo);
$user=$userinfo;
$uid=$userinfo;
GateWay::storeUid($uid); // 記錄uid到gateway通信地址的映射
GateWay::notifyConnectionSuccess($uid); // 發(fā)送數(shù)據(jù)包到address對應的gateway,確認connection成功
GateWay::sendToCurrentUid($new_message); // 發(fā)送數(shù)據(jù)包到客戶端 完成握手
return self::addUser($uid, $user); // 添加用戶
}else{
echo "error_action:$message";
return false;
}
我是這樣處理的.
string_turn_array這個函數(shù)是把字符串轉(zhuǎn)成數(shù)組.
我今在才接觸這個,希望大家一起研究啊.我想要有一個API接口.可以通過PHP連接聊天室,并查詢和發(fā)送信息.研究半天沒結果.希望哪位大神給點提示.
兩個問題
1、$sock = stream_socket_client("tcp://$ip:$port/?username=XXX&password=XXX");
這種方式連接在event中試過if(preg_match("/GET\s\/\?(.*?)\sHTTP\/1.1/", $message, $userinfo))取不到username和password值,應該怎么樣取。
2、如果我是在本機連遠程服務器,if(!$sock)exit("can not create sock\n");else{echo "OK";},這個能打印出OK,說明連上服務器了。但遠程服務器的信息并不能返回給本機,這是什么原因。本機是在一個局域網(wǎng)。
參照 https://www.kancloud.cn/walkor/workerman/315305 ,可以獲取。
例如:
/**
* 當連接建立時觸發(fā)的回調(diào)函數(shù)
* @param $connection
*/
public function onConnect($connection)
{
$connection->onWebSocketConnect = function ($connection, $http_header) {
var_dump($_GET);
};
}