问题标签 [cro]

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 投票
2 回答
183 浏览

web - 使用zef安装模块后如何编辑模块中的源代码?

例如,当我运行我的简单代码时,我已经安装了Cro模块:

它说'无法解析媒体类型application/json; charset=utf-8;

似乎这application/json; charset=utf8;不是有效的content-type,所以我添加了一个测试:

输出是:

源代码似乎位于/Users/ohmycloud/.perl6/sources/5B710DB8DF7799BC8B40647E4F9945BCB8745B69文件中,我';'?TOP令牌后添加:

保存,然后再次运行我的代码,但错误是一样的。那么如何让改变发挥作用呢?在 Perl 5 中,我只能编辑我的.pm模块,但在 Perl 6 中,我不知道该怎么做。

0 投票
1 回答
236 浏览

raku - Perl 6 Cro 的存根不运行:请求 HTTP/2,但不支持 ALPN

我用 Perl 6 的 cro 创建了一个存根服务,但由于“不支持 ALPN”而出错。

我用谷歌搜索了这个错误,但我得到的只是重建 nginx 和 Apache 的信息,我没有使用它们。它提到了 libssl,并且在我拥有的这个相当古老的安装中libssl1.0.0:i386libssl0.9.8:i386没有可用的更新包。

手动编译一个新的 libssl 可能会解决我遇到的问题吗?


更新:假设我确实正确安装了较新的 libssl,问题仍然存在:

0 投票
1 回答
151 浏览

raku - “Cro Endpoint HTTP”应该在哪里定义?

控制台在启动 cro ('cro run') 后显示此消息:

我无法弄清楚“端点 HTTP”的定义位置。这是我的“ service.p6 ”:

谢谢!

0 投票
1 回答
218 浏览

raku - 无法运行“cro stub”等

通过 Zef 安装了 Cro,但无法运行“cro stub”、“cro run”等
(编辑:Fedora 28,来自 Fedora 的 rakudo)

那么,“cro”安装在哪里?到处都找不到。

许可证:Artistic-2.0
来源网址: https
://github.com/croservices/cro-core.git 提供:19 个模块
取决于:0 项


更新:我安装了“Cro”,没有“cro”(全小写)。
按照 Takao 的回答,我尝试安装“cro”(全小写),但 Zef 说没有什么要安装的了。在 Zef 中使用“--force-install”就可以了,“cro”(全小写)安装在 .perl6/bin 中。

此外,当第一次安装 Cro 时,IO::Socket::Async::SSL 存在问题,在 libssl.so 中找不到符号“sk_num”...我告诉 Zef 跳过对 IO:: 的测试Socket::Async:SSL,安装成功。无论如何,我想我将无法使用带有加密连接的 Cro。

0 投票
1 回答
239 浏览

raku - Cro::WebSocket::Client 不起作用

使用“cro sub”创建了一个 websocket 服务器。

写了这个客户:

我使用 tcpdump 看到来自服务器的响应代码 101(切换协议),但我没有看到从客户端发送到服务器的消息。

那么,我做错了什么?

另一个问题,"$connection.send" 不应该返回一个 Promise 什么的吗?发送时出现错误怎么办?

还有一个问题:似乎服务器只理解 IPV6 地址......如何让它理解 IPV4 地址?

就是这样,现在。


更新

按照 Takao 的建议,改变

解决了这个问题(虽然我在另一个程序上试过,不是这个)。

0 投票
1 回答
260 浏览

raku - Cro WebSocket 客户端看不到服务器何时关闭

下面的客户端程序从 WebSocket 服务器接收消息。
它不发送任何消息。

客户

服务器

现在,当服务器关闭时(例如,按 Ctrl+C),客户端什么也看不到。

在客户端中设置 CRO_TRACE=1 会给出:

客户什么也没显示(然后我取消了它)。

所以,问题是:客户应该如何处理这种情况?

更新

编辑了问题,现在显示服务器代码
另外,我在 Fedora 28 中。当我第一次取消服务器时,netstat 显示

Tcpdump 显示

从客户端到服务器的最后一个 ACK​​ 似乎丢失了,我猜客户端没有关闭连接。

另外,我很好奇为什么 Cro 默认选择使用 IPv6。

0 投票
2 回答
168 浏览

raku - Cro 用户会话被遗忘

我正在尝试学习 Cro (和 Perl6 同时) ;)

我的学习应用基于 Cro 的文档。我添加了一些有效的身份验证,但用户会话立即被遗忘。

您可以在https://gitlab.com/ecocode/beaverapp查看代码, 进入登录页面并使用“user”和“pwd”登录。您被重新路由到 / (表示登录成功),但那里的消息是“当前用户:-”。所以会话丢失了。

Routes.pm6 的相关部分:

我认为问题是由于中间件会话管理不起作用。我应该如何纠正这个?或者问题可能是由于其他原因?

0 投票
1 回答
227 浏览

websocket - 使用 Cro::WebSocket::Client 添加授权或标头?

我正在通过HTTP 路由非常成功地使用Cro HTTP 身份验证/授权/会话。

然后我添加了一个创建web-socketusing的路由,Cro::HTTP::Router::WebSocket我可以连接到它,Cro::WebSocket::Client一切正常。

现在我想控制对websocket的访问,所以我添加了一个Cro::HTTP::Auth参数。效果很好。现在客户得到了401 Unauthorized预期的结果。

下一步,如何打开门?

使用Cro::HTTP::Client,我可以传入Authorization标题,甚至可以传入auth选项。我该怎么做Cro::WebSocket::Client

我对 WebSocket 很陌生,所以我什至不知道这是否是做这样的事情的正确方法,但似乎该Cro::WebSocket::Client connect方法应该采用一个headers命名选项,该选项可以获取传递的额外标头。

0 投票
2 回答
189 浏览

raku - 如何在 cro 中的两个路由器模块之间共享变量?

我尝试使用 Cro 创建一个将在 rabbitMQ 中发布消息的 Rest API。我想将我的路线分成不同的模块,并用“包含”组合它们。但我也希望能够在每个模块中共享与 rabbitMQ 的相同连接。我尝试使用“我们的”,但它不起作用:

文件 1:

文件 2:

错误信息:

谢谢!

0 投票
1 回答
139 浏览

asynchronous - 使用 IO::Socket::Async 处理连接失败

我正在使用 IO::Socket::Async 做一个小项目。我正在尝试编写一些测试以确保我正确处理连接丢失,但我最初的尝试没有按计划进行。我认为使用 QUIT 移相器会起作用,但这在我尝试关闭供应的测试中没有给出任何响应,但这并没有给出我希望的结果。有人可以为我指出如何使用 IO::Socket::Async 处理连接丢失的正确方向吗?

下面是我尝试使用 quit 的供应示例。因为它没有按我的预期工作。我不确定我是否正确地解决了这个问题。