Swoole VS Golang QPS 简单测试

最近在学习 Swoole,Golang,网上看到了很多 Swoole 和 Golang 的对比,也自行代码测试,发现略不同。貌似 Swoole 和 Golang QPS 旗鼓相当。

测试版本:

go1.19.1

swoole-4.8.11

测试代码

web.go

package main
 
import (
    "net/http"
)
     
func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("hi,golang"))
    })
    http.ListenAndServe("0.0.0.0:8080", nil)
}

web.php

<?php
$http = new \Swoole\Http\Server('0.0.0.0',6060);
 
$http->set([
	    'document_root' => '/data/www/test',
]);
 
$http->on('request',function ($request, $response){
	$response->header("Content-Type", "text/html; charset=utf-8");
	$response->end('hi,swoole');
});
 
$http->start();

先正常测试

Swoole QPS:5575.97 / Sec

 GO QPS:5234.77 / Sec

长链接测试:

 Go QPS: 32318 / Sec

Swoole QPS: 37952 / Sec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,你需要确保已经安装了 Swoole 扩展和 Laravel Swoole 扩展,可以参考官方文档进行安装: Swoole:https://www.swoole.com/docs/get-started/installation Laravel Swoole:https://github.com/swooletw/laravel-swoole/blob/master/README.md 接下来,你可以创建一个 Laravel 的路由来测试 WebSocket 的链接,例如: ```php use Swoole\Http\Request; use Swoole\Websocket\Frame; use Swoole\WebSocket\Server; Route::get('/websocket', function () { return view('websocket'); }); Route::get('/websocket/ws', function (Request $request, Server $server) { $server->push($request->fd, "Hello, welcome to WebSocket server!"); }); Route::get('/websocket/wss', function (Request $request, Server $server) { $server->push($request->fd, "Hello, welcome to Secure WebSocket server!"); }); ``` 其中,`/websocket` 是一个展示页面的路由,`/websocket/ws` 和 `/websocket/wss` 分别是 WebSocket 和 Secure WebSocket 的路由。 在 `resources/views` 目录下,你需要创建一个 `websocket.blade.php` 文件,例如: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WebSocket Test</title> </head> <body> <h1>WebSocket Test</h1> <button onclick="connectWS()">Connect WebSocket</button> <button onclick="connectWSS()">Connect Secure WebSocket</button> <div id="output"></div> <script> function connectWS() { let ws = new WebSocket('ws://127.0.0.1:9501/websocket/ws'); ws.onopen = function () { console.log('WebSocket connected.'); document.getElementById('output').innerHTML = 'WebSocket connected.'; }; ws.onmessage = function (event) { console.log('WebSocket received message:', event.data); document.getElementById('output').innerHTML = 'WebSocket received message: ' + event.data; }; } function connectWSS() { let ws = new WebSocket('wss://127.0.0.1:9502/websocket/wss'); ws.onopen = function () { console.log('Secure WebSocket connected.'); document.getElementById('output').innerHTML = 'Secure WebSocket connected.'; }; ws.onmessage = function (event) { console.log('Secure WebSocket received message:', event.data); document.getElementById('output').innerHTML = 'Secure WebSocket received message: ' + event.data; }; } </script> </body> </html> ``` 该页面中有两个按钮,分别用于连接 WebSocket 和 Secure WebSocket。当链接成功后,会在页面上显示相应的消息。 最后,你需要启动 Swoole 服务器来监听 WebSocket 和 Secure WebSocket 的请求,可以在 Laravel 项目根目录下执行如下命令: ``` php artisan swoole:http start ``` 启动成功后,访问 `http://127.0.0.1:1215/websocket` 即可进入 WebSocket 测试页面。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fevan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值