{"id":442,"title":"swoole\u4e4bwebsocket\u6709\u65f6\u5019\u8fde\u63a5\u4e0a\uff0c\u5237\u65b0\u4e00\u4e0b\u53c8\u8fde\u63a5\u4e0d\u4e0a","good":0,"bad":18,"hit":3902,"created_at":"2019-09-11 01:04:08","content":"
\u6700\u8fd1\u7528swoole\u505a\u4e2a\u5ba2\u670d\u7cfb\u7edf\uff0c\u9047\u5230\u4e00\u4e2a\u5947\u602a\u7684\u95ee\u9898\uff0c\u524d\u7aef\u7528websocket\u8fde\u63a5\u4e0a\uff0c\u5237\u65b0\u540e\u8fde\u4e0d\u4e0a\u4e86\uff0c\u518d\u5237\u65b0\u4e00\u4e0b\u53c8\u8fde\u63a5\u4e0a\u4e86\uff1b<\/p>
\u540e\u6765\u53d1\u73b0\u662f\u4e0b\u9762\u6709\u4e2a\u6b7b\u5faa\u73afwhile(true)\u90a3\u91cc\u963b\u585e\u4e86\uff1b\u662f\u56e0\u4e3a\u4e0a\u9762\u7684swoole tick\u6267\u884c\u4e86\u4e00\u6bb5\u65f6\u95f4\u540e\u5c31\u4e0d\u6267\u884c\u4e86\uff0c\u540e\u6765\u81ea\u505a\u806a\u660e\u7684\u7528\u4e86\u4e2awhile(true)\u4ee3\u66ff\uff0c\u6ca1\u60f3\u5230\u5f71\u54cd\u5230\u4e86\u540e\u9762\u7684onMessage\u4e8b\u4ef6\uff0c\u5bfc\u81f4\u524d\u7aef\u53d1\u9001\u8bf7\u6c42\u540e\uff0c\u540e\u7aef\u6709\u65f6\u5019\u6ca1\u6709\u54cd\u5e94\u5e76\u53d1\u9001\u6570\u636e\u7ed9\u524d\u7aef\uff1b <\/p>
while (true) {\u8fd9\u91cc\u7684\u95ee\u9898<\/pre>\/**\n * \u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u5efa\u7acb\u8fde\u63a5\u5e76\u5b8c\u6210\u63e1\u624b\n * $request \u662f\u4e00\u4e2aHttp\u8bf7\u6c42\u5bf9\u8c61\uff0c\u5305\u542b\u4e86\u5ba2\u6237\u7aef\u53d1\u6765\u7684\u63e1\u624b\u8bf7\u6c42\u4fe1\u606f\n * onOpen\u4e8b\u4ef6\u51fd\u6570\u4e2d\u53ef\u4ee5\u8c03\u7528push\u5411\u5ba2\u6237\u7aef\u53d1\u9001\u6570\u636e\u6216\u8005\u8c03\u7528close\u5173\u95ed\u8fde\u63a5\n * onOpen\u4e8b\u4ef6\u56de\u8c03\u662f\u53ef\u9009\u7684\n *\/\n $this->server->on('open', function ($ser, $request) {\n $fd = $request->fd;\n $this->_sendConsole($fd,'\u8fde\u63a5\u6210\u529f,fd='.$fd);\n if ($ser->worker_id == 0) {\n $this->server->tick(1000, function () use ($ser) {\n echo 1;\n \/\/\u6e05\u9664\u4e0d\u5728\u7ebf\u7684\u8bbf\u5ba2\u53ca\u5ba2\u670d\n $this->_clearNotOnline();\n \/\/\u5df2\u8bfb\u4efb\u52a1\u5904\u7406\n $this->_sendHasRead();\n \/\/@todo \u5206\u914d\u804a\u5929\u7ed9\u5ba2\u670d\uff1a\u627e\u5230\u672a\u5206\u914d\u7684\u804a\u5929\uff0c\u6839\u636e\u5546\u5bb6id\u627e\u5230\u5546\u5bb6\u7684\u5ba2\u670d\u8fdb\u884c\u5206\u914d\n \/\/\u540e\u53f0\u624b\u52a8\u63a5\u5f85\u6d4b\u8bd5\u901a\u8fc7\u540e\u518d\u5728\u8fd9\u91cc\u5206\n });\n\/\/ while (true) {\n\/\/ \/\/echo 2;\n\/\/ \/\/\u6e05\u9664\u4e0d\u5728\u7ebf\u7684\u8bbf\u5ba2\u53ca\u5ba2\u670d\n\/\/ $this->_clearNotOnline();\n\/\/ \/\/\u5df2\u8bfb\u4efb\u52a1\u5904\u7406\n\/\/ $this->_sendHasRead();\n\/\/ \/\/@todo \u5206\u914d\u804a\u5929\u7ed9\u5ba2\u670d\uff1a\u627e\u5230\u672a\u5206\u914d\u7684\u804a\u5929\uff0c\u6839\u636e\u5546\u5bb6id\u627e\u5230\u5546\u5bb6\u7684\u5ba2\u670d\u8fdb\u884c\u5206\u914d\n\/\/ \/\/\u540e\u53f0\u624b\u52a8\u63a5\u5f85\u6d4b\u8bd5\u901a\u8fc7\u540e\u518d\u5728\u8fd9\u91cc\u5206\n\/\/ sleep(1);\n\/\/ }\n }\n });<\/pre>
<\/p>"}