我在代码里写了 $key = isset($_GET)?$_GET:false;可好像一直都是false 框架里是这么获取的吗??
输出GET看看呢,可能GET没有获取到key的键
我打印了 _GET _POST _SERVER貌似都没有得到 不知道为什么 我已经换了个方法提交了 谢谢啊
用的什么框架啊
还是这个框架 我让用户在聊天的时候 把这个参数一起提交给服务器了
例如前端js这样调用
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); // 发送数据包到address对应的gateway,确认connection成功 GateWay::sendToCurrentUid($new_message); // 发送数据包到客户端 完成握手 return self::addUser($uid, $user); // 添加用户 }else{ echo "error_action:$message"; return false; }
我是这样处理的. string_turn_array这个函数是把字符串转成数组.
我今在才接触这个,希望大家一起研究啊.我想要有一个API接口.可以通过PHP连接聊天室,并查询和发送信息.研究半天没结果.希望哪位大神给点提示.
为啥我把UID换成非数字形式,ChatDemo运行就会出现 PHP Notice: Undefined index: to_uid in /workerman-master/applications/PushDemo/Tests/Chat.php on line 56 整个socket没有写进去好像
uid 必须为数字
两个问题 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,说明连上服务器了。但远程服务器的信息并不能返回给本机,这是什么原因。本机是在一个局域网。
参照 https://www.kancloud.cn/walkor/workerman/315305 ,可以获取。 例如:
/** * 当连接建立时触发的回调函数 * @param $connection */ public function onConnect($connection) { $connection->onWebSocketConnect = function ($connection, $http_header) { var_dump($_GET); }; }
输出GET看看呢,可能GET没有获取到key的键
我打印了 _GET _POST _SERVER貌似都没有得到 不知道为什么 我已经换了个方法提交了 谢谢啊
用的什么框架啊
还是这个框架 我让用户在聊天的时候 把这个参数一起提交给服务器了
例如前端js这样调用
你是说的这个吧.
我是这样处理的.
string_turn_array这个函数是把字符串转成数组.
我今在才接触这个,希望大家一起研究啊.我想要有一个API接口.可以通过PHP连接聊天室,并查询和发送信息.研究半天没结果.希望哪位大神给点提示.
为啥我把UID换成非数字形式,ChatDemo运行就会出现
PHP Notice: Undefined index: to_uid in /workerman-master/applications/PushDemo/Tests/Chat.php on line 56 整个socket没有写进去好像
uid 必须为数字
两个问题
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,说明连上服务器了。但远程服务器的信息并不能返回给本机,这是什么原因。本机是在一个局域网。
参照 https://www.kancloud.cn/walkor/workerman/315305 ,可以获取。
例如: