课程表

Swoole基础

Swoole实例

工具箱
速查手册

Swoole WebSocket实例

当前位置:免费教程 » 程序设计 » Swoole

swoole-1.7.9 增加了内置的websocket服务器支持,通过几行PHP代码就可以写出一个异步非阻塞多进程的WebSocket服务器。

常见使用场景:我们在使用php开发的时候,原生最不好用的是socket类库了,而在开发IM和及时通信项目是,我们现在有了新的选择后端使用php Swoole WebSocket + 前端 html5 WebSocket;

简单实例:

  1. $server = new swoole_websocket_server("0.0.0.0", 9501);
  2. $server->on('open', function (swoole_websocket_server $server, $request) {
  3. echo "server: handshake success with fd{$request->fd}\n";
  4. });
  5. $server->on('message', function (swoole_websocket_server $server, $frame) {
  6. echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
  7. $server->push($frame->fd, "this is server");
  8. });
  9. $server->on('close', function ($ser, $fd) {
  10. echo "client {$fd} closed\n";
  11. });
  12. $server->start();

onRequest回调

swoole_websocket_server 继承自 swoole_http_server

  • 设置了onRequest回调,websocket服务器也可以同时作为http服务器
  • 未设置onRequest回调,websocket服务器收到http请求后会返回http 400错误页面

客户端

  • Chrome/Firefox/高版本IE/Safari等浏览器内置了JS语言的WebSocket客户端
  • 异步的PHP程序中可以使用Swoole\Http\Client作为WebSocket客户端
  • apache/php-fpm或其他同步阻塞的PHP程序中可以使用swoole/framework提供的同步WebSocket客户端
  • 非WebSocket客户端不能与WebSocket服务器通信
甚至你还可以结合使用socket.io来配合开发
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号