workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
怎么将服
务
端上传到云服
务
器?
按照官方介绍的方法 写了段websocket 服
务
端代码 地址为本地的127.0.0.1:2346 用了workerman 框架后 CMD启动服
务
端成功~ 之后再用客户端连接127.0.0.1:2346 也成功了 现在很迷茫 只知道怎么用本地连接,怎么让外网也能连接到,将服
务
端代码 上传到新浪云SAE可以吗?上传之后又该怎么启动服
务
端呢?一头雾水,求指教!
问答
Error during WebSocket handshake: net::ERR_CONNECTION_RESET
有没有大哥帮我看看这是咋
回
事
我用的是 gateway 连接的时候 一下可以 一下
不
行的 这是nginx的配置 ``` server { listen 20005; listen 443} } ``` 这是前断连接的 ```javascript var ws = new WebSocket("ws://chatnew.test.com:20005"); ``` 一会可以一会
不
行
问答
单进程redis读写堵塞
前几天在
生
产服上发现,单进程每秒50次写入redis(短链接)的时候,就会出现极高的延迟,导致整个进程都被堵塞。而此时worker服
务
器和redis服
务
器的CPU、内存、进程、TCP连接数都正常。请问大师,是
不
是php redis扩展的问题?还是在进程中操作redis的方法
不
对
问答
设备主动发起心跳,我这边
不
能拿到判断
注册 Z 都能走判断里面 但是为什么 T
不
走判断里面 T 是设备主动发送的心跳, 因为T没走判断里面,没有返
回
值,一会儿就退出了
问答
单机改成集群,能平滑重启实现吗
现在公司部署的gatewayworker在一台单机32核64g服
务
器上,现在要改成集群,看了文档,如果要改成集群,好像reload没用,要重新restart,文档写的是reload只对runall后面加载的文件有
效
但是客户现在有10多万台设备在线,
不
想重新启动,因为重新启动会掉线。想问下有什么方案能改成集群,但是又
不
影响已经在线的设备
文档
count
# count ## 说明: ```php int Worker::$count ``` 设置当前Worker实例启动多少个进程,
不
设置时默认为1。 如何设置进程数,请参考[**这里**](..注意:此属性必须在```Worker::runAll();```运行前设置才有
效
。windows系统
不
支持此特性。autoload.php'; $worker = new Worker('websocket://0.0.0.0:8484'); // 启动8个进程,同时监听8484端口,以websocket协议提供服
务
问答
gateway自己实现bindUid遇到的问题和解决方案
说下思路,请教下大家看看有什么
不
对或需要改进的地方,谢谢 用uid和client_id绑定时有这样一个业
务
情景: 用户用多个浏览器都登录了,如果用户在某一个浏览器点退出登录时,需要当前浏览器所有的socket为了解决这个问题,我在redis中做了如下处理 集合类型 uid:1 session_id:65nfsq33hbto6s5d61eq80ri92 (如uid为1的用户登录chrome产
生
的session_id) session_id:25nfsq33hbto6s5d61eq80ri93 (如uid为1的用户登录safari 产
生
的session_id) 集合类型 session_id:65nfsq33hbto6s5d61eq80ri92(chrome连接产
生
的全部client_id ) client_id:1 client_id:2 client_id:3 session_id:25nfsq33hbto6s5d61eq80ri93(safari连接产
生
的全部client_id ) client_id:4 client_id:5 client_id:6 这样,用户在safari退出登录时 onclose时,就可以通过uid和
分享
laraman,可以轻松用Workerman加速Laravel的扩展包,
不
需要改任何东西
于是乎我也研究了起来,虽然说是
不
用改代码,但是要改环境,而且对session支持
不
好,也
不
支持静态文件。因此决定自己改一下。这就入了坑了。
不
啰嗦,直接说结果。除了php.exe再也
不
用其他了 ## 实现了哪些功能,有哪些用途? 1.web服
务
(页面、静态文件、api接口,cookie,session)统统实现。laravel原版原样
不
改变。之前怎么开发后面就怎么开发 2.热重启(修改代码自动重启)移植自webman原
生
实现,windows下也一样没问题 3.自定义process,已经封装好了,用起来超简单。php artisan vendor:publish --tag=laraman.install ``` ## 如何使用 ### 启动服
务
```bash #像使用artisan一样 一键启动注册在config/laraman/server.php 中process服
务
php laraman ``` ### 手动启动一个服
务
```bash php laraman process {process name
问答
gateway 服
务
器cpu突然升高,原因
不
明
gateway进程数4,bussworkerman进程为8,2台分开部署在
不
同服
务
器上,只有gateway进程升高,workerman日志显示没有错误,只是报了个 pid:31135 Bad request
问答
workerman教程3(新手必备)
room_id=3 就有了 VALUS Array ( => weff => fvx ) 就是用户列表 这里有2个用户名 1个
事
weff 1个
事
fvx 26和28是client_id 就是服
务
端和客户端的连接字发送数据靠这个 28=>Array ( => 127.0.0.1 => 10012 => 554 ) 这个我就
不
说了 28对应的一些客户端数据
问答
sendtouid和sendtogroup
假如,我要给一万人发消息,但是这一万人
不
确定都是哪些人。每次的列表都是动态的。我是先循环把所有人都加到一个组里,然后调用sendtogroup
效
率高,还是直接循环里边sendtouid
效
率高?
问答
请教下数据库连接中断问题
我建立了一个监听 当有用户连接的时候 我去操作数据库 很好用 当我服
务
开了 N天之后 在有用户连接 我这边直接报错了 连接数据失败 重启之后 又可以用了 是
不
是 我连接数据库 有有
效
时长
问答
请问使用多进程时,是根据什么规则将多个连接分配给各个进程的?
事
情的背景是这样的,我想一次抓取多个网页的内容,简单的做法可以是把网址放进数组里,foreach遍历出来一个个抓取。但这样是同步的,耗时比较长,所以我想用异步多进程来实现。代码运行的结果返
回
如下: (每一行代表一个要抓取的网页,记录了执行这次抓取的task worker的id,以及抓取的用时) (最后一行是总用时) [attach]496[/attach] 这个结果是我希望得到的结果但我发现类似这种25个任
务
平均分配给5个进程的情况很少出现。经常出现有的进程执行很多次任
务
,而有的只执行1次。甚至会出现25个任
务
全都分配给1个进程的情况,这时总用时达到了6秒 ,相当于单进程的做法? 请问使用多进程时是
不
是要注意什么规则?(本人最近刚学习workman,对php的多进程也
不
太熟,希望各位前辈多指点)
问答
(急)怎么把前端推送改成php推送
php /** * 认真编码 快乐
生
活 * User: helloJiu * Date: 2018/9/12 * Time: 18:06 */ // 建立socket连接到内部推送端口 $clientgroup_id":"123"}'); ws.send('{"cmd":"send_to_group", "group_id":"123", "message":"哈哈哈1"}'); }; ``` 服
务
端$group_con_map = array(); $worker->onWorkerStart = function(){ // Channel客户端连接到Channel服
务
端Channel\Client::connect('127.0.0.1', 2206); // 监听全局分组发送消息
事
件 Channel\Client:break; // 群发消息给群组 case "send_to_group": // Channel\Client给所有服
务
器的所有进程广播分组发送消息
事
件
问答
请问下我在onMessage写定时器 时间长了就
不
发数据给用户端
时间长了就
不
发数据给用户端了 刷新浏览器也
不
会返
回
是被阻塞了吗? 请问下大家这一块需要怎么优化或者设置 
文档
心跳
2、服
务
端可以通过心跳来判断客户端是否在线,如果客户端在规定时间内没有发来任何数据,就认为客户端下线。这样可以检测到客户端由于极端情况(断电、断网等)下线的
事
件。,则服
务
端认为客户端已经掉线,服
务
端关闭连接并触发onClose。## 断线重连(重要)
不
管是客户端发送心跳还是服
务
端发送心跳,连接都有断开的可能。尤其是外网环境复杂,很多路由节点会清理1分钟内
不
活跃的连接,这也是为什么心跳间隔推荐小于1分钟的原因。例如浏览器websocket需要监听onclose
事
件,当发
生
onclose时建立新的连接(为避免需崩可延建立连接)。
问答
webman,做核心API服
务
,如何监控?
目前的服
务
,还是走的php-fpm模式,可以直接通过阿里云 ARMS,进行监控 可以监控的内容非常齐全和完善,举例如下 !后面启动新的项目,打算用webman来做核心API服
务
,之前了解到swoole这种
不
能被ARMS监控到 所以,
不
太清楚,webman这种常驻内存的PHP应用,是否能如php-fpm那样被ARMS监控到顺便问一下,所有用workerman 或者 webman做的服
务
,大家都是如何监控的?
问答
EV_READ的
回
调方法问题
是
不
时当一个 socket连上来 缓冲区有数据时,才会触发stream_socket_accept,这样是
不
时阻塞非阻塞没啥区别了。每次aceept都能得到socket
问答
gateway 关于如何通知好友断开
事
件
**但是$client_id 获取 user_id 获取
不
到** —然后我实现了 如图下面的 把** userid存到session**中 ,但又出现问题 在**onMessage**可以获取 user_id在**onClose** 中获取
不
到 求大神 有实现这种通知好友断开的吗 _由于项目时间比较急 ,没有时间补功课_
分享
🧌 实战系列 | 高性能PHP框架webman协程插件入门实战
chaz6chez`的协程插件** https://www.workerman.net/plugin/167 ## 🐞 简介 > **🚀🚀 webman-coroutine 是一个 webman 开发框架
生
态下的协程基建支撑插件建议
不
要将`swoole`加入`php.ini`配置文件 3.WebmanCoroutine\Factory::$_handlers`的顺序执行`available()`择先 > 注:因为`eventLoopClass`与`HandlerClass`是一一对应的,所以建议
不
管是否存在相同的
事
件循环或者相同的处理器都需要继承后重命名## 自定义协程化 `webman-coroutine`提供了用于让自己的自定义服
务
/进程协程化的基础工具 > 注:考虑到 webman 框架默认
不
会启用注解代理,所以这里没有使用注解代理来处理协程化代理自定义服
务
> 代码样例:[CoroutineWebServer.php](src%2FCoroutineWebServer.php) 假设我们已经存在一个自定义服
务
类,如`MyServer.php
« 上一页
1
...
91
92
93
94
95
96
97
98
...
482
下一页 »
« 上一页
94
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝