问题标签 [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.
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 中,我不知道该怎么做。
raku - Perl 6 Cro 的存根不运行:请求 HTTP/2,但不支持 ALPN
我用 Perl 6 的 cro 创建了一个存根服务,但由于“不支持 ALPN”而出错。
我用谷歌搜索了这个错误,但我得到的只是重建 nginx 和 Apache 的信息,我没有使用它们。它提到了 libssl,并且在我拥有的这个相当古老的安装中libssl1.0.0:i386
,libssl0.9.8:i386
没有可用的更新包。
手动编译一个新的 libssl 可能会解决我遇到的问题吗?
更新:假设我确实正确安装了较新的 libssl,问题仍然存在:
raku - “Cro Endpoint HTTP”应该在哪里定义?
控制台在启动 cro ('cro run') 后显示此消息:
我无法弄清楚“端点 HTTP”的定义位置。这是我的“ service.p6 ”:
谢谢!
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。
raku - Cro::WebSocket::Client 不起作用
使用“cro sub”创建了一个 websocket 服务器。
写了这个客户:
我使用 tcpdump 看到来自服务器的响应代码 101(切换协议),但我没有看到从客户端发送到服务器的消息。
那么,我做错了什么?
另一个问题,"$connection.send" 不应该返回一个 Promise 什么的吗?发送时出现错误怎么办?
还有一个问题:似乎服务器只理解 IPV6 地址......如何让它理解 IPV4 地址?
就是这样,现在。
更新
按照 Takao 的建议,改变
到
解决了这个问题(虽然我在另一个程序上试过,不是这个)。
raku - Cro WebSocket 客户端看不到服务器何时关闭
下面的客户端程序从 WebSocket 服务器接收消息。
它不发送任何消息。
客户
服务器
现在,当服务器关闭时(例如,按 Ctrl+C),客户端什么也看不到。
在客户端中设置 CRO_TRACE=1 会给出:
客户什么也没显示(然后我取消了它)。
所以,问题是:客户应该如何处理这种情况?
更新
编辑了问题,现在显示服务器代码
另外,我在 Fedora 28 中。当我第一次取消服务器时,netstat 显示
Tcpdump 显示
从客户端到服务器的最后一个 ACK 似乎丢失了,我猜客户端没有关闭连接。
另外,我很好奇为什么 Cro 默认选择使用 IPv6。
raku - Cro 用户会话被遗忘
我正在尝试学习 Cro (和 Perl6 同时) ;)
我的学习应用基于 Cro 的文档。我添加了一些有效的身份验证,但用户会话立即被遗忘。
您可以在https://gitlab.com/ecocode/beaverapp查看代码, 进入登录页面并使用“user”和“pwd”登录。您被重新路由到 / (表示登录成功),但那里的消息是“当前用户:-”。所以会话丢失了。
Routes.pm6 的相关部分:
我认为问题是由于中间件会话管理不起作用。我应该如何纠正这个?或者问题可能是由于其他原因?
websocket - 使用 Cro::WebSocket::Client 添加授权或标头?
我正在通过HTTP 路由非常成功地使用Cro HTTP 身份验证/授权/会话。
然后我添加了一个创建web-socket
using的路由,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
命名选项,该选项可以获取传递的额外标头。
raku - 如何在 cro 中的两个路由器模块之间共享变量?
我尝试使用 Cro 创建一个将在 rabbitMQ 中发布消息的 Rest API。我想将我的路线分成不同的模块,并用“包含”组合它们。但我也希望能够在每个模块中共享与 rabbitMQ 的相同连接。我尝试使用“我们的”,但它不起作用:
文件 1:
文件 2:
错误信息:
谢谢!
asynchronous - 使用 IO::Socket::Async 处理连接失败
我正在使用 IO::Socket::Async 做一个小项目。我正在尝试编写一些测试以确保我正确处理连接丢失,但我最初的尝试没有按计划进行。我认为使用 QUIT 移相器会起作用,但这在我尝试关闭供应的测试中没有给出任何响应,但这并没有给出我希望的结果。有人可以为我指出如何使用 IO::Socket::Async 处理连接丢失的正确方向吗?
下面是我尝试使用 quit 的供应示例。因为它没有按我的预期工作。我不确定我是否正确地解决了这个问题。