php作为wss客户端,如何使用workerman同时发起100个wss客户端

使用下面的 python 脚本,你可以轻松实现多开

# -*- coding: utf-8 -*-

'''

同时运行多个进程,用法:

python3 xx.py

@author: 李毅

'''

import asyncio

from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter, REMAINDER

async def single(wid, cmd):

p = await asyncio.create_subprocess_exec(*cmd)

print('#{} pid={} 已经启动'.format(wid, p.pid))

await p.communicate()

print('#{} pid={}, 代码={} 已经结束'.format(wid, p.pid, p.returncode))

async def main(loop, args):

if not args.worker or not len(args.cmd):

return

ps = [single(i, args.cmd) for i in range(args.worker)]

return await asyncio.gather(*ps)

if __name__ == '__main__':

parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)

parser.add_argument('worker', type=int, help='进程数')

parser.add_argument('cmd', nargs=REMAINDER, help='命令参数,例如: "sleep 30"')

loop = asyncio.get_event_loop()

loop.run_until_complete(main(loop, parser.parse_args()))

举例:同时开启 10 个 ping -c4 baidu.com 进程

python3 a.py 3 ping -c4 baidu.com

输出如下

PING baidu.com (123.125.115.110) 56(84) bytes of data.

#1 pid=137 已经启动

#2 pid=138 已经启动

#0 pid=139 已经启动

PING baidu.com (220.181.57.216) 56(84) bytes of data.

PING baidu.com (123.125.115.110) 56(84) bytes of data.

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=52 time=38.0 ms

64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=55 time=36.3 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=52 time=38.0 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=52 time=37.9 ms

64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=55 time=36.2 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=52 time=37.6 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=3 ttl=52 time=37.9 ms

64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=55 time=36.1 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=3 ttl=52 time=37.8 ms

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=4 ttl=52 time=37.9 ms

--- baidu.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3002ms

rtt min/avg/max/mdev = 37.916/37.955/38.024/0.199 ms

64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=4 ttl=55 time=36.1 ms

--- baidu.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 36.113/36.218/36.374/0.254 ms

#1 pid=137, 代码=0 已经结束

#2 pid=138, 代码=0 已经结束

64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=4 ttl=52 time=37.7 ms

--- baidu.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 37.647/37.818/38.060/0.249 ms

#0 pid=139, 代码=0 已经结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值