string
*/
private function _decode($buffer)
{
$len = $masks = $data = $decoded = null;
$len = ord($buffer[1]) & 127;
if ($len === 126) {
$masks = substr($buffer, 4, 4);
$data = substr($buffer, 8);
} else if ($len === 127) {
$masks = substr($buffer, 10, 4);
$data = substr($buffer, 14);
} else {
$masks = substr($buffer, 2, 4);
$data = substr($buffer, 6);
}
for ($index = 0; $index < strlen($data); $index++) {
$decoded .= $data[$index] ^ $masks[$index % 4];
}
return $decoded;
}
/**
* 处理返回帧
* @param $buffer
* @return string
*/
private function _frame($buffer)
{
$len = strlen($buffer);
if ($len <= 125) {
return "\x81" . chr($len) . $buffer;
} else if ($len <= 65535) {
return "\x81" . chr(126) . pack("n", $len) . $buffer;
} else {
return "\x81" . char(127) . pack("xxxxN", $len) . $buffer;
}
}
}
$sc = new SocketServer();
$sc->run('127.0.0.1', 2046);
3、客户端代码
注:直接复制到html,和上面的php文件在同一文件夹即可,特别注意onmessage解析的两层 parse
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript"type="text/javascript">
websocket = new WebSocket('ws://127.0.0.1:2046/');
websocket.onopen = function(evt) {
console.log('connect');
websocket.send('{"data":"您好,世界!"}');
};
websocket.onclose = function(evt) {
console.log('onclose');
console.log(evt);
};
websocket.onmessage = function(evt) {
console.log('onmessage');
if (evt.data) {
console.log(JSON.parse(JSON.parse(evt.data)));
}
};
websocket.onerror = function(evt) {
console.log('onerror');
console.log(evt);
};
function sendMsg(){
var sendData = { 'data': document.getElementById('name').value};
websocket.send(JSON.stringify(sendData));
}
</script>
</head>
<body>
<h2>WebSocket Test</h2>
<input type="text" name="name" id="name" />
<a href="javascript:;" onclick="sendMsg()">点击发送</a>
</body>
</html>4、测试示例

相关推荐:
PHP中Socket服务器搭建和测试方法教程
Nodejs如何搭建Web服务器
以上就是php下Socket服务器如何搭建并测试?(代码)的详细内容,更多请关注php中文网其它相关文章!
网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。
关键词:php下Socket服务器如何搭建并测试?(代码)