Home >Backend Development >PHP Tutorial >Use php swoole to update client data in real time (1), swooleclient_PHP tutorial

Use php swoole to update client data in real time (1), swooleclient_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 09:01:211016browse

Use php swoole to update client data in real time (1), swooleclient

If you want to update a list in real time, the traditional approach is to use polling. Taking the web as an example, the server is regularly requested through Ajax and then the data is obtained and displayed on the page. This method is simple to implement, but the disadvantage is that it wastes resources.

HTTP1.1 has newly added support for websocket, so that passive display can be transformed into active notification. That is, a persistent connection is maintained with the server through websocket. Once the data changes, the server notifies the client that the data has been updated, and then refreshes and other operations are performed. This eliminates many unnecessary passive requests and saves server resources.

To implement a webscoket program, you first need to use a browser that supports HTML5

if(ws === null){
var wsServer = 'ws://'+ location.hostname +':8888';
ws = new WebSocket(wsServer);
ws.onopen = function(){
console.log("socket连接已打开");
};
ws.onmessage = function(e){
console.log("message:" + e.data);
};
ws.onclose = function(){
console.log("socket连接已断开");
};
ws.onerror = function(e){
console.log("ERROR:" + e.data);
};
//离开页面时关闭连接
$(window).bind('beforeunload',function(){
ws.close();
}
);
} 

In this way, a client is implemented, but the matter is far from over. The above code simply performs basic actions such as connection, dialogue, and shutdown. If you want to communicate with the server, you must have a more specific solution. For example, when receiving a message, determine the type and perform further operations.

Server side: Swoole is used here for websocket development on the PHP server. It is very simple to use Swoole for PHP websocket development, and it also supports httpserver.

$server = new swoole_websocket_server("0.0.0.0", 8888);
$server->on('open', function (swoole_websocket_server $server, $request) {
echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
$server->push($frame->fd, "this is server");
});
$server->on('close', function ($ser, $fd) {
echo "client {$fd} closed\n";
});
$server->start();

swoole is a php extension, you can refer to the installation method here: How to install swoole extension in php

This article is written here first. The next article will write some more specific operations. Interested friends please continue to pay attention to this site. Thanks!

Articles you may be interested in:

  • Using swoole to extend php websocket example
  • PHP framework Swoole timer Timer feature analysis
  • php asynchronous multi-threaded swoole Usage examples
  • How to install swoole extension in php
  • Swoole-1.7.22 version has been released, fixing PHP7 related issues

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1089583.htmlTechArticleUse php swoole to update client data in real time (1), swooleclient If you want to update a list in real time, traditional The best approach is to use polling. Take the web as an example, timing through Ajax...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn