问题标签 [swoole]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2213 浏览

php - Swoole 与 RabbitMQ

我正在尝试使用 websockets 将一些数据从 php 应用程序发送到用户的浏览器。因此,我决定将Swoole与 RabbitMQ 结合使用。

这是我第一次使用 websockets,并且在阅读了一些关于 Socket.IO、Ratchet 等的帖子之后。我决定停止使用 Swoole,因为它是用 C 编写的并且可以方便地与 php 一起使用。

这就是我如何理解使用 websockets 启用数据传输的想法:1)在 CLI 中启动 RabbitMQ worker 和 Swoole 服务器 2)php 应用程序将数据发送到 RabbitMQ 3)RabbitMQ 将带有数据的消息发送到 worker 4)Worker 接收带有数据的消息 + 建立与 Swoole 套接字服务器的套接字连接。5) Swoole 服务器向所有连接广播数据

问题是如何将 Swoole 套接字服务器与 RabbitMQ 绑定?或者如何让 RabbitMQ 与 Swoole 建立连接并向其发送数据?

这是代码:

Swoole 服务器 (swoole_sever.php)

Worker 从 RabbitMQ 接收消息,然后连接到 Swoole 并通过套接字连接(worker.php)广播消息

消息将发送到 RabbitMQ (new_task.php) 的新任务:

在启动 swoole 服务器和 worker 之后,我正在从命令行触发 new_task.php:

在运行 RabbitMQ Worker (worker.php) 的命令行提示符中,我可以看到一条消息已传递给 worker(“[x] Received Hello World!”消息正在出现)。

然而,在运行 Swoole 服务器的命令行提示符中什么也没有发生。

所以问题是:1)这种方法的想法正确吗?2)我做错了什么?

0 投票
0 回答
953 浏览

php - 在 PHP 中使用 Swoole 锁

我正在开发一个应该由 Swoole 扩展来实现的新项目。

这是 swoole 锁的文档: https ://www.swoole.co.uk/docs/modules/swoole-lock

以下是支持的锁类型:

这是我的问题:

  1. 为什么在尝试获取锁时只有 SWOOLE_SPINLOCK 有效,而所有其他锁都返回 false?

  2. 在 SWOOLE_RWLOCK 模式下如何锁定读或写,以及如何释放读或写锁?文档只提到了获取读锁(正如我在 #1 中所说,它总是返回 false)。


执行结果:

SWOOLE_RWLOCK:

SWOOLE_MUTEX:

SWOOLE_SEM:

SWOOLE_SEM:

我没有检查 SWOOLE_FILELOCK 模式,因为它试图锁定磁盘上的文件,这不是该项目的选项。

另外,这 5 个常量似乎都没有定义,所以我在上面的示例中使用了它们对应的整数值。


我在 macOS Sierra 上使用最新版本的 PHP 7.2.4 和 Swoole 2.1.1。这是phpinfo():


phpinfo (php -i) 配置命令(php从源码编译):

swoole 配置命令(swoole 源码编译):

0 投票
1 回答
527 浏览

php - 即使终端关闭,也保持 swoole websocket 运行

我正在尝试使用 Socket 并使用 Swoole 作为后端创建一个聊天应用程序。我成功地创建了与服务器客户端的连接,但我现在面临的问题是,每当我关闭终端时,WebSocket 都无法连接。服务器代码:-

客户端代码:-

一切正常,唯一的问题是当我们关闭终端 Web 套接字 ID 时。

0 投票
1 回答
2298 浏览

macos - 如何在 mac-os 中安装 swoole

我正在尝试在 MAMP 中使用 PHP 7.0.2 安装 swoole

有没有其他安装方法?谢谢。

0 投票
4 回答
6511 浏览

php - 可以在windows机器上安装swoole吗?

我已经用 php7 安装了 Laravel 5,它在我的Windows机器上运行良好。最近才知道SWOOLE是 PHP 开发者一个很有前途的工具!

不幸的是,我找不到任何适用于 Windows 的 SWOOLE 安装程序。

是不是可以在 Windows 机器上安装 SWOOLE,如果可以怎么办?

提前致谢。

0 投票
2 回答
844 浏览

php - Swoole 安装错误

我正在尝试在我的 Mac 上安装 swoole 我试过这个 sudo pecl install swoole

但是我收到了一个像这个致命错误这样的错误:'pcre.h' file not found first。

如何解决这个问题?提前致谢!

0 投票
1 回答
1213 浏览

php - Nginx Swoole 代理上的 CORS 配置是什么?

这让我很沮丧。我得到了那句经典台词:

请求的资源上不存在“Access-Control-Allow-Origin”标头。

我在 Ubuntu 16.04 上运行最新的稳定 Nginx,配置了 Swoole 服务器以处理 PHP 7.2 中的 Laravel PHP 请求。据我所知,一切正常。

Laravel api 在一个子域上,前端是另一个子域上的 angular。到目前为止一切正常,所以我一直在尝试在后端站点上配置 CORS。

尽管进行了配置,但它并没有意识到它的存在。是的,我每次更新配置时都会重新启动 nginx。出于开发目的,缓存目前已关闭。Nginx 配置缩短如下:

我尝试将标头转移到一堆不同的地方,但我没有运气改变响应,用 curl ping 服务器

没有提供任何有用的信息,并且似乎没有包含 CORS 标头。我尝试了 CORS 标头命令的不同变体和配置,但没有响应。

有人知道可能出了什么问题吗?

0 投票
1 回答
1366 浏览

symfony - api-platform + swoole = 性能提升?

在 Api-platform ( https://api-platform.com/ ) 中是否有一个很好地融合了 Swoole ( https://www.swoole.co.uk/ ) 的“桥梁” ?

对我来说看起来很有趣的要点是避免在每个新请求上启动 symfony/api-platform 框架......以便在服务 REST API Web 请求时获得更好的性能。

在 Api 平台的 Web 请求引擎中以良好的方式合并 Swoole 是否会显着提高性能?

0 投票
2 回答
1819 浏览

php - Swoole 将 websocket 数据从服务器发送到客户端

大家好!

我将 swoole 用于 WebSockets。

我创建客户端部分:

创建 WebServer 部分:

从服务器部分创建发送:

我试图在 WebSocket 服务器中创建 TCP 服务器,只需在“启动”回调中添加下一部分:

但只是收到一个错误:

Swoole\Server::__construct(): eventLoop 已经创建。无法创建 swoole_server。

我需要将数据从服务器发送到客户端。我怎样才能做到这一点?在workerman库中,我接下来要做: https ://github.com/Shkarbatov/WebSocketPHPWorkerman/blob/master/worker.php

0 投票
0 回答
532 浏览

makefile - Swoole 制作失败 ubuntu16.04

我正在尝试在我的 Ubuntu-16.04 上安装 SWOOLE

我试过这个sudo pecl install swoole

但是我得到了一长串错误(跳过了一些行

我也试过这个

这也给出了类似的错误。

如何解决这个问题?提前致谢!

编辑: 也添加了第一个生成的错误