• 服务端代码
<?php
//task任务要实现两个方法onfinish ontask
//还要设置worker_num
date_default_timezone_set("PRC"); //设置为本地时间 class taskserver
{
CONST host ="0.0.0.0";
CONST port =;
public $sw = null;
public function __construct()
{
$this->sw = new swoole_websocket_server(taskserver::host,taskserver::port);
$this->sw->set([
'worker_num'=>,
'task_worker_num'=>
]); $this->sw->on('open',[$this,'onopen']);
$this->sw->on('message',[$this,'onmessage']);
$this->sw->on('task',[$this,'ontask']);
$this->sw->on('finish',[$this,'onfinish']);
$this->sw->on('close',[$this,'onclose']);
$this->sw->start();
} public function onopen($serv,$request)
{
echo "来自{$request->fd}的连接已经建立\n";
echo "cpu数量:".SWOOLE_CPU_NUM()."\n";
} public function onmessage($serv,$frament)
{
echo "finish标识符---{$frament->finish}--opcode:{$frament->opcode}---fd:标识符{$frament->fd}\n";
//加入这里有个耗费时间的操作
//这个数组没什么实际意义,只不过是模拟一个任务
$mytask=array([
"name"=>'陈培昌',
'age'=>
]);
$serv->task($mytask);//把任务头送进进程池,$mytask必须是可序列化的数据类型
$serv->push($frament->fd,"回馈来自客户端{$frament->fd}的数据{$frament->data}---时间是".date("Y-m-d H:i:s")."\n");
} public function ontask($serv,$task_id,$worker_id,$mytask)
{
//这里是真正执行阻塞任务的地方
//纯属无聊,打印看看是这个任务---也就是$mytask到底什么货色
print_r($mytask);
//这段模拟阻塞/耗时操作
sleep();
//返回处理结果
return "想去找小烤肠练巴西柔术"; } public function onfinish($serv,$task_id,$data)
{
echo "{$task_id}就绪,并返回结果----{$data}";
}
public function onclose($serv,$fd)
{
echo "句柄:{$fd}关闭连接\n";
}
}
$cpc = new taskserver();
  • 运行结果

打印:

来自1的连接已经建立
cpu数量:4
finish标识符---1--opcode:1---fd:标识符1
Array
(
[0] => Array
(
[name] => 陈培昌
[age] => 22
)

)

--------------------------------10秒后又打印

0就绪,并返回结果----想去找小烤肠练巴西柔术

把task加入websocket服务端程序的更多相关文章

  1. websocketj--随时随地在Web浏览器中操作你的服务端程序

    0 - 有没有觉得Linux标准终端界面输入输出枯燥无味? 1 - 什么?vmstat命令的输出数据不直观?有没有想过能够可视化该命令的输出? 2 - 尝试过用浏览器操作Windows中的cmd吗? ...

  2. 用nodejs快速实现websocket服务端(带SSL证书生成)

    有不少公司将nodejs的socket.io作为websocket的解决方案,很遗憾的是socket.io是对websocket的封装,并不支持html5原始的websocket协议,微信小程序使用的 ...

  3. asp.net网站作为websocket服务端的应用该如何写

    最近被websocket的一个问题困扰了很久,有一个需求是在web网站中搭建websocket服务.客户端通过网页与服务器建立连接,然后服务器根据ip给客户端网页发送信息. 其实,这个需求并不难,只是 ...

  4. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  5. 03-案例——多任务版TCP服务端程序开发

    案例——多任务版TCP服务端程序开发   1. 需求     目前我们开发的TCP服务端程序只能服务于一个客户端,如何开发一个多任务版的TCP服务端程序能够服务于多个客户端呢?完成多任务,可以使用线程 ...

  6. node.js服务端程序在Linux上持久运行

    如果要想在服务端部署node.js程序,让其持久化运行,就不能单单使用npm start命令运行,当然了,这样运行是毫无问题的,但是当关闭xshell窗口或者是关闭进程的时候(其实关闭xshell窗口 ...

  7. zabbix3.0.4关于java服务端程序内存溢出的处理

    关于java服务端程序内存溢出的处理 java服务端程序内存溢出会产生jvm.log文件,此时程序会挂掉,无法正常处理业务,需要重启服务 思路: 当存在jvm.log这个文件的时候则触发clean_j ...

  8. 第一个socket服务端程序

    第一个socket服务端程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  9. nodejs搭建简单的websocket服务端

    创建websocket服务端使用了nodejs-websocket ,首先要安装nodejs-websocket,在项目的目录下: npm install nodejs-websocket 1.搭建w ...

随机推荐

  1. Oracle的查询-条件表达式

    给emp表中员工起中文名 select e.ename from emp e; select e.ename, case e.ename when 'SMITH' then '曹贼' when 'AL ...

  2. 南昌网络赛C.Angry FFF Party

    南昌网络赛C.Angry FFF Party Describe In ACM labs, there are only few members who have girlfriends. And th ...

  3. Asp.net core Identity + identity server + angular + odata + 权限管理

    今天踩了一个坑. 网站发布后看到了一个 error Refused to execute inline script because it violates the following Content ...

  4. webpack自定义loader并发布

    一.官网对loader的解释: 1.loader 是导出为一个函数的 node 模块.该函数在 loader 转换资源的时候调用.给定的函数将调用 loader API,并通过 this 上下文访问. ...

  5. 随便----js参考书

    一.Javascript方面的书籍: 1 JavaScript权威指南(第6版):号称javascript圣经,前端必备:前端程序员学习核心JavaScript语言和由Web浏览器定义的JavaScr ...

  6. 一个小时前,美国主流媒体,头条,谷歌两位创始人突然宣布退下来,把万亿美元的帝国交给Sundar Pichai

    一个小时前,美国各大主流媒体头条,谷歌两位创始人,放弃了万亿美元的帝国控制权,交给了CEO Sundar Pichai.  ​​​

  7. O064、NFS Volume Provider(Part III)

    参考https://www.cnblogs.com/CloudMan6/p/5702199.html   今天我们将前一小节中创建的 nfs-vol-xx attach 到Instance c1 上, ...

  8. java.sql.SQLException: Could not retrieve transaction read-only status from server 问题解决

    网上有2种主要说法 第一种 问题描述: java代码在开始事务后,先做了一个查询,再insert,此时会报:          java.sql.SQLException: could not ret ...

  9. 关于c语言的文法分析问题

    <程序>  ->   <声明> | <程序> <函数> <声明>  ->   #include<stdio.h>|# ...

  10. XSS防御和绕过2

    上一篇已经总结过,这里转载一篇,备忘 0x01 常规插入及其绕过 转自https://blog.csdn.net/qq_29277155/article/details/51320064 1 Scri ...