socket.io-client模拟多用户做并发测试

    因为新公司是做视频业务的,所以需要对基于websocket协议的功能做并发测试。

    本来之前一直用Python,但是这边服务器用的socket.io版本太低,没有对应的python第三方轮子。

    于是转用node.js,这玩意以前都没接触过,看了一天基本用法开搞。

    一开始,死活连不上socket服务器,用了各种方式,又换语言,又换工具的,最后发现下的sokcet.io-client版本太高了,去npm下载和服务器对应的版本。

    官网地址:https://www.npmjs.com/package/socket.io 

    安装完成后,终于连上服务器了,感动这破玩意困扰了我一天多。

    还没来得及高兴,脚本写完后,运行,并没有并发连接服务器,起了10个连接,只连接到一个。

    各种百度都没有搜到解决办法,问开发同学,帮忙调试也没找出原因。

    万般无奈下,去git看源码和英文文档,之前不看就是因为对英语恐惧,结果真是踏破铁鞋无觅处啊。

    原来,当创建连接时只要传一个配置参数就可以,启动新连接了,下面贴代码。

const socket = io('https://localhost:8888', {
    query: params,
    //此处大坑,设置为true才会开启新的连接
    forceNew:true
});

    完。

    最后,真的还是要学英语啊~!

    

转载于:https://my.oschina.net/qujinliang/blog/2056437

要在 Laravel 中整合 PHPSocket.io 实现 web 消息推送,你需要遵循以下步骤: 1. 安装 PHPSocket.io 你可以使用 Composer 包管理器安装 PHPSocket.io。在终端中,导航到 Laravel 项目目录并运行以下命令: ``` composer require elephant-io/elephant.io ``` 2. 配置 PHPSocket.io 在 Laravel 项目中,你需要在 `config/app.php` 文件中添加以下行: ```php 'aliases' => [ // ... 'ElephantIO' => 'ElephantIO\Engine\SocketIO\Version1X', ], ``` 3. 创建 PHPSocket.io 服务提供者 在 Laravel 项目中,你需要创建 PHPSocket.io 服务提供者。运行以下命令来创建: ``` php artisan make:provider SocketIoServiceProvider ``` 在 `SocketIoServiceProvider` 类中,你需要添加以下内容: ```php use ElephantIO\Client; use ElephantIO\Engine\SocketIO\Version1X; public function register() { $this->app->singleton(Client::class, function ($app) { $client = new Client(new Version1X('http://localhost:3000')); return $client; }); } ``` 此代码将在 Laravel 应用程序中注册 `Client` 类的单例实例。 4. 创建推送事件 在 Laravel 项目中,你需要创建推送事件。运行以下命令来创建: ``` php artisan make:event PushNotification ``` 在 `PushNotification` 类中,你需要添加以下内容: ```php public $message; public function __construct($message) { $this->message = $message; } public function broadcastOn() { return new PrivateChannel('push-notification'); } ``` 此代码将创建一个名为 `PushNotification` 的事件类,并在构造函数中接受要推送的消息。`broadcastOn` 方法指定了事件应该广播到的频道。 5. 创建事件监听器 在 Laravel 项目中,你需要创建事件监听器。运行以下命令来创建: ``` php artisan make:listener PushNotificationListener ``` 在 `PushNotificationListener` 类中,你需要添加以下内容: ```php use ElephantIO\Client; protected $socket; public function __construct(Client $socket) { $this->socket = $socket; } public function handle(PushNotification $event) { $this->socket->initialize(); $this->socket->emit('push-notification', ['message' => $event->message]); $this->socket->close(); } ``` 此代码将创建一个名为 `PushNotificationListener` 的事件监听器,并在构造函数中注入 `Client` 实例。`handle` 方法将使用 `Client` 类向 Socket.io 服务器发送消息。 6. 注册事件和监听器 在 Laravel 项目中,你需要在 `EventServiceProvider` 类中注册事件和监听器。在 `EventServiceProvider` 类中,你需要添加以下内容: ```php protected $listen = [ PushNotification::class => [ PushNotificationListener::class, ], ]; ``` 此代码将注册 `PushNotification` 事件和 `PushNotificationListener` 监听器。 7. 发送推送消息 在 Laravel 项目中,你可以使用以下代码发送推送消息: ```php event(new PushNotification('Hello world!')); ``` 这将触发 `PushNotification` 事件,并将消息发送到 Socket.io 服务器。然后,`PushNotificationListener` 监听器将从 Socket.io 服务器接收到消息并发送到连接到服务器的所有客户端。 以上是整合 PHPSocket.io 实现 web 消息推送的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值