php怎麼實現聊天功能
1、在前端使用ajax定時輪詢訪問php指令碼,php再進行查詢聊天資料進行返回給前端,最後前端將其進行渲染;
**示例:
聊天室 $(function());});
function getdata(msg),function(data),function(data));
// //alert(event.clientx+document.body.clientwidth);
/*window.οnbefοreunlοad=function ()else
#chatshow
#userlist
#userlist p
.clearboth
.username
// $dsn = "mysql:host=localhost;dbname=test;charset=utf8'";
// $db = new pdo($dsn, 'root', 'root');
$db = new pdo('mysql:dbname=test;host=127.0.0.1;charset=utf8', 'root', 'adminroot');
$rs = $db->prepare("select * from chat where is_login = '1'");
$rs->execute();
while($row = $rs->fetch())elseelseelse else ;
sendmsg(user_info);
break;
case 'login':
userlist(data.user_list);
systemmessage('系統訊息: ' + data.msg + ' 已上線');
break;
case 'logout':
userlist(data.user_list);
if (data.msg.length > 0) else );
document.queryselector("input#input-value").value = "";
function sendmsg(msg) else
function uuid(len, radix) else catch (exception $e) started,pid: "));
while (true) catch (exception $e) else else else else if ($len < 65025) else ));
$frame[2] = $data;
$data = implode('', $frame);
return pack("h*", $data);
* 接受資料解析
* @param $buffer
* @return mixed
private function parse($buffer)
$decoded = '';
$len = ord($buffer[1]) & 127;
if ($len === 126) else if ($len === 127) else {
$masks = substr($buffer, 2, 4);
$data = substr($buffer, 6);
for ($index = 0; $index < strlen($data); $index++) {
$decoded .= $data[$index] ^ $masks[$index % 4];
return json_decode($decoded, true);
// 提取 sec-websocket-key 資訊
private function getkey($req)
$key = null;
if (preg_match("/sec-websocket-key: (.*)\r\n/", $req, $match)) {
$key = $match[1];
return $key;
//加密 sec-websocket-key
private function encry($req)
$key = $this->getkey($req);
return base64_encode(sha1($key . '258eafa5-e914-47da-95ca-c5ab0dc85b11', true));
* 連線socket
* @param $client
public function connection($client)
socket_getpeername ( $client , $address ,$port );
$info = array(
'resource' => $client,
'userinfo' => '',
'handshake' => false,
'ip' => $address,
'port' => $port,
$this->_socketpool[(int)$client] = $info;
$this->debug(array_merge(['socket_connect'], $info));
* 斷開連線
* @param $socket
* @return array
public function disconnection($socket)
$recv_msg = array(
'type' => 'logout',
'msg' => @$this->_socketpool[(int)$socket]['username'],
unset($this->_socketpool[(int)$socket]);
return $recv_msg;
* 日誌
* @param array $info
private function debug(array $info)
$time = date('y-m-d h:i:s');
array_unshift($info, $time);
$info = array_map('json_encode', $info);
new socketserver();
php聊天功能 php實現簡單聊天功能
php實現簡單聊天功能 1 建立聊天訊息表,其表的字段有訊息內容,傳送時間和傳送者的名稱 sql create table guanhui message id int 10 not null auto increment comment 訊息id content varchar 255 not n...
php post 為空 php實現簡單聊天功能
每日17點準時技術乾貨分享 php實現簡單聊天功能 1 建立聊天訊息表,其表的字段有訊息內容,傳送時間和傳送者的名稱 sql create table guanhui message id int 10 not null auto increment comment 訊息id content var...
php怎麼呼叫,php怎麼實現呼叫物件
php怎麼實現呼叫物件 閱讀 73 php 物件的呼叫和引入 直接上例項 定義 class a static q 888 public function index echo 1111 static function debug echo echo 555 使用 include a.php clas...