所以我有一个使用Tonic crate用 Rust 编写的 gRPC 服务器。我已经编写了所有原型文件,并且可以使用基于 Tonic 的客户端和grpcurl发出请求,因此服务器端没有问题。
\n我有一个基于 Unity 3D 的游戏,我想将其用作客户端。Unity 使用 C#/.NET/Mono,因此理论上应该很容易让 gRPC 客户端工作。事实证明这并不那么容易。
\n根据互联网(特别是https://grpc.io/blog/grpc-csharp-future/),我们应该使用Grpc.Net.Client包。因此,我使用非常有用的NuGetForUnity工具将其放入 Unity 中。
\n我收到以下错误,至少信息非常丰富
\n\n\nPlatformNotSupportedException:gRPC 需要在不支持 HTTP/2 上的 gRPC 的 .NET 实现上进行额外配置。必须使用 GrpcChannelOptions.HttpHandler 指定 HTTP 提供程序。配置的 HTTP 提供程序必须支持 HTTP/2 或配置为使用 gRPC-Web。有关详细信息,请参阅https://aka.ms/aspnet/grpc/netstandard。
\n
经过一番谷歌搜索后,我发现了以下链接,这些链接清楚地表明 Unity/Xamarin 和其他链接不支持 Grpc.Net.Client。
\nhttps://github.com/grpc/grpc-dotnet/issues/1309#issuecomment-850303082
\nhttps://learn.microsoft.com/en-us/aspnet/core/grpc/netstandard?view=aspnetcore-6.0
\n总之:
\n\n\n …不支持 HTTP/2 的 .NET 实现(例如 UWP、Xamarin 和 Unity)可以使用 gRPC-Web 作为替代方案。
\n
在Xcode的早期版本中,我可以将基本SDK设置为当前的iOS版本,将部署目标设置为早期的版本,如iOS 7 TechTalk的第2部分:会话构建现代应用程序中的以下幻灯片所示:
这个堆栈溢出问题很好地阐述了基本SDK与部署目标。
xcode中的Base SDK,iOS部署目标,Target和Project的含义是什么
但是,现在,当我查看Xcode中的基本SDK配置字段时,我只会看到“ iOS”(这是“ iphoneos”的别名)。
根据https://developer.apple.com/ios/submit/
从2019年3月开始,提交给App Store的所有iOS应用程序都必须使用iOS 12.1 SDK或更高版本构建,并支持iPhone XS Max或12.9英寸iPad Pro(第三代)的全屏设计。
这让我感到担心,因为似乎我无法再将目标指向旧版本的iOS。
我已经做了很多研究,似乎无法确切地确定是否还有一种使用12.1 SDK的方法,但可以针对较旧的iOS版本。有没有办法做到这一点?
我正在Swift 2.2中为工作项目实现访问者模式.
因此,我不需要简化我的源代码并节省一些时间,我将使用Oktawian Chojnacki在swift中的访客模式示例.
protocol PlanetVisitor {
func visit(planet: PlanetAlderaan)
func visit(planet: PlanetCoruscant)
func visit(planet: PlanetTatooine)
}
protocol Planet {
func accept(visitor: PlanetVisitor)
}
class PlanetAlderaan: Planet {
func accept(visitor: PlanetVisitor) { visitor.visit(self) }
}
class PlanetCoruscant: Planet {
func accept(visitor: PlanetVisitor) { visitor.visit(self) }
}
class PlanetTatooine: Planet {
func accept(visitor: PlanetVisitor) { visitor.visit(self) }
}
class NameVisitor: PlanetVisitor {
var name = ""
func visit(planet: PlanetAlderaan) { name = "Alderaan" }
func visit(planet: PlanetCoruscant) { name …Run Code Online (Sandbox Code Playgroud) 我正在从Docker容器中的PostgreSQL数据库生成转储文件,我希望将其放入该/tmp文件夹中.
在Docker容器中打开shell之后,我运行了以下命令:
sh-4.2# su - postgres
Last login: Wed Apr 18 05:22:26 UTC 2018 on pts/1
-bash-4.2$ psql
psql (9.3.15)
Type "help" for help.
Run Code Online (Sandbox Code Playgroud)
然后,我执行此命令以在/tmp文件夹中生成转储文件:
postgres=# \! pg_dump -U user hidb -f /tmp/my_db_dumpa.sql;
Password:
Run Code Online (Sandbox Code Playgroud)
我在请求时提供了正确的密码,但/tmp主机环境(Ubuntu Linux)中的文件夹内没有物理文件.谢谢
当您从c ++调用LUA函数并且存在运行时错误时,LuaBind会抛出一个luabind :: error异常,您可以捕获该异常,然后读取堆栈以查看错误是什么.我的调试器肯定会捕获此异常,但是当我让调试器继续运行时,程序会立即终止,而不是在我的代码中捕获异常.
在析构函数~sexy_member_void_caller()的LuaBind包含文件的"call_member.hpp"中抛出异常.
简单的测试代码会出现问题.我正在使用Xcode 5和LuaBind 0.9.1.
我将以下代码存储在名为index.php的文件中.
<?php
file_put_contents(date('Y-m-d-H-i-s', time()) . '.txt', '123');
sleep(1);
header("Location: ./index.php", true, 301);
?>
Run Code Online (Sandbox Code Playgroud)
在浏览器中,它每秒都会创建一个文件,但是当我在php CLI(php -f index.php)中运行它时,它只创建一个文件.
如何在php CLI中使用重定向?