首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于iOS/Android应用程序通信的基于TCP的RPC服务器(Erlang或类似的东西?)

这个问答内容涉及到了云计算领域的多个专业知识,我将尽可能全面地回答这个问题。

首先,我们需要了解RPC(Remote Procedure Call,远程过程调用)的概念。RPC是一种通信协议,允许客户端应用程序在不同的计算机上调用服务器端的函数或方法,就像它们在同一台计算机上运行一样。RPC的实现通常涉及到序列化和反序列化数据,以便在客户端和服务器之间传输。

在这个问题中,我们需要了解TCP(Transmission Control Protocol,传输控制协议)和Erlang。TCP是一种面向连接的、可靠的、基于字节流的传输层协议。它提供了一种可靠的数据传输机制,可以保证数据的顺序和完整性。Erlang是一种功能性编程语言,它是为了支持大规模并发处理而设计的。Erlang使用Actor模型来实现并发,这使得它非常适合构建高并发、分布式和容错的系统。

结合这些概念,我们可以得出一个基于TCP的RPC服务器,可以使用Erlang或类似的语言来实现。这样的服务器可以处理来自iOS/Android应用程序的远程过程调用,并通过TCP协议来保证数据的传输可靠性。

在腾讯云中,有一个产品叫做API Gateway,它可以帮助用户管理API和提供API的调用能力。API Gateway支持多种协议,包括HTTP、HTTPS、HTTP + WebSocket和TCP协议。使用API Gateway,用户可以构建高并发、安全、稳定的API服务,并且可以通过Erlang或其他编程语言来实现自己的业务逻辑。

总结一下,基于TCP的RPC服务器可以使用Erlang或类似的语言来实现,腾讯云的API Gateway提供了支持TCP协议的API服务,可以用于实现这样的服务器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

回顾Erlang简要

世界是并行Erlang程序反应了一种思考和交流方式,个体通过发送消息进行交流,如果有个体死亡,其他个体会注意到。 Erlang模块相当于OOPL中,进程类似于OOPL里对象实例。...Erlang并发程序是由互相通信多组顺序进程组成,一个进程就是一个轻量级虚拟机,可以执行单个Erlang函数,只能通过发送和接收消息来与其他进程通信。...用来表示键值解析树,如xml配置文件 6) 用Json来通信 映射组语法: #{key1 op val1,key2 op val2,…,KeyN op valN} '#后没有名称,op是=>:=之一...分布式erlang运行在可信网络,通常在同一局域网集群上,并受防火墙保护。基于socket分布式模型基于TCP/IP不可信网络....socket 编程简例 Erlang 中gen_tcp 用于编写TCP程序,gen_udp用于编写UDP程序。

1.2K40

远程调用几种方式

tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场景而扩展出传输协议,网络IO,主要有bio、 nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用易用...原理是这样,但为了应用方便,业界推出了很多基于此原理之上应用级协议,使得大家可以不用去直接操作这么底层东西,通常应用级远程通信协议会 提供: 1....基于socket将序列化后流传输至服务器端; 4. 服务器端接收到流后转发至相应skelton; 5. skelton将请求信息反序列化后调用实际处理; 6....SOAP SOAP原意为Simple Object Access Protocol,是一个用于分布式环境、轻量级基于XML进行信息交换通信协议,可以认为SOAP是XML RPC高级版,两者原理完全相同...但它确实是个远程通信协议,在其他语言体系中也存在着类似JMS东西,可以统一将这类机制称为消 息机制,而消息机制呢,通常是高并发、分布式领域推荐一种通信机制,这里主要一个问题是容错(详细见ErLang

18820

Golang语言社区--手游服务器开发技术详解

当然,也有其他服务器开发语言,erlang(没用过,页游公司用多),c#(大棒子国喜欢用,神奇民族),Java(第一次听说时我惊呆了),node.js(少量游戏用,还有一个node.js写引擎叫...现在网络游戏大多数都是tcp,像MMORPG游戏。我们现在游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接。...2.protobuf:全称Google Protocol Buffers,是google开发一套用于数据存储,网络通信用于协议编解码工具库。...(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一连接这个假设。 在这里它更适合服务器服务器之间通信,比如逻辑服和战斗服之间进行通信。...基于http协议通信用memcached是一个不错选择,如果是tcp长链接,直接维护一个在线内存对象就可以了。 类似的技术还有redis等。

3.3K40

【专业技术】如何搭建游戏服务器

当然,也有其他服务器开发语言,erlang(没用过,页游公司用多),c#(大棒子国喜欢用,神奇民族),Java(第一次听说时我惊呆了),node.js(少量游戏用,还有一个node.js写引擎叫...现在网络游戏大多数都是tcp,像MMORPG游戏。我们现在游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接。...2.protobuf:全称Google Protocol Buffers,是google开发一套用于数据存储,网络通信用于协议编解码工具库。...(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一连接这个假设。 在这里它更适合服务器服务器之间通信,比如逻辑服和战斗服之间进行通信。...基于http协议通信用memcached是一个不错选择,如果是tcp长链接,直接维护一个在线内存对象就可以了。 类似的技术还有redis等。

12.3K72

【谁会是下一个王者农药】云服务器如何搭建游戏服务器

4.GameManager:负责管理所有的GameServer,GameServer之间消息转发,提供广播到所有Game功能。 4.协议 客户端与服务器之间协议通信,可以用tcp或者http。...现在网络游戏大多数都是tcp,像MMORPG游戏。我们现在游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接。...2.protobuf:全称Google Protocol Buffers,是google开发一套用于数据存储,网络通信用于协议编解码工具库。...(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一连接这个假设。 在这里它更适合服务器服务器之间通信,比如逻辑服和战斗服之间进行通信。...基于http协议通信用memcached是一个不错选择,如果是tcp长链接,直接维护一个在线内存对象就可以了。 类似的技术还有redis等。

2.1K30

Python + gRPC 会擦出怎样火花?

gRPC 是什么 gRPC 是搭建分布式应用接口和客户端框架 在 gRPC 中,客户端应用程序可以直接调用不同机器上服务器应用程序方法,就像它是本地对象一样,可以更容易创建分布式应用程序和服务...与许多 RPC 系统一样,gRPC 基于定义服务思想,指定可以远程调用方法及其参数和返回类型 在服务端实现这个接口并运行一个 gRPC 服务器来处理客户端调用 在客户端有一个存根(在某些语言中仅称为客户端...),它提供与服务器相同方法 gRPC 是一款高性能、开源 RPC 框架,产自 Google,基于 ProtoBuf 序列化协议进行开发,支持多种语言(Golang、Python、Java等) 今天分享仅介绍...Python gRPC 使用,因为 gRPC 对 HTTP/2 协议支持使其在 AndroidIOS 等客户端后端服务开发领域具有良好前景 gRPC 提供了一种简单方法来定义服务,同时客户端可以充分利用...第二文件是用.proto文件 + Python:调用如下命令生成py文件,即上文所说客户端文件 本示例中服务器端文件由C++服务提供,所以配置好Ip & Port 后直接调用 这里以 Storage.proto

32120

《数据密集型应用系统设计》 - 数据编码和演化

本章节后半部分讨论RPC和SOAP,以及基于WebService服务跨语言通信服务,和RPC通信协议,但是WebService这东西现在用的人越来越少,反观微服务才是当前主流。...模式框架设计理解基本和TCP/IP协议面对问题类似,在差异不同应用系统之间如何完成统一格式通信,并且在不同应用系统升级之后能以最小成本完成向前兼容。...实际上模式框架本身思想并不是什么新东西,ASN.l 在 1984年首次被标准化模式定义语言中可以看到类似的影子,ASN.I 本身也被用于SSL证书二进制编码(DER)当中。...通常情况下HTTP可以用作传输协议 ,但是在顶层实现API是特定于应用程序,客户端和服务器需要就API细节达成一致。...此外对于RESTful API ,常用是在URLHTTP Accept头中使用 版本号限定调用和兼容性保持。另一种选择是客户端请求API版本存储服务器,同时提供多版本接口管理调用功能。

1.2K00

聊聊gRPC特性和背后设计原则(一)

RPC全称(Remote Procedure Call),远程过程调用,指的是一台计算机通过网络请求另一台计算机上服务,从而不需要了解底层网络细节,RPC是构建在已经存在协议(TCP/IP,HTTP...等)之上RPC采用是客户端,服务器模式。...可以在任何地方运行,它使客户端和服务器应用程序能够透明地进行通信,并使构建连接系统变得更加容易。...已经为命名解析和负载均衡提供了接口 基于http2协议特性:gRPC允许定义如下四服务方法 单项RPC:客户端发送一次请求,等待服务端响应结构,会话结束,就像一次普通函数调用这样简单 服务端流式RPC...这对于在某些平台上扩展和处理至关重要 取消和超时:一次RPC操作可能是持久并且昂贵,应该允许客户端设置取消RPC通信和对这次通信加上一个超时时间 拒绝:必须允许服务器通过在继续处理请求同时拒绝新请求到来并优雅地关闭

3.2K20

消息推送原理

应用级协议 为了应用方便,业界推出了很多基于此原理之上应用级协议,使得大家可以不用去直接操作这么底层东西,通常应用级远程通信协议会提供: 为了避免直接做流操作这么麻烦,提供一种更加易用贴合语言标准传输格式...来看下基于RMI一次完整远程通信过程原理: 客户端发起请求,请求转交至RMI客户端stub; stub将请求接口、方法、参数等信息进行序列化; 基于socket将序列化后流传输至服务器端...SOAP SOAP原意为Simple Object Access Protocol,是一个用于分布式环境、轻量级基于XML进行信息交换通信协议,可以认为SOAP是XML RPC高级版,两者原理完全相同...这就向RPC服务器表明,被请求方法在为 “classname”中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配和方法,并把它作为那种方法参数类型输入。...RPC基于 HTTP TCP 协议,Web Service 就是基于 HTTP 协议 RPC,它具有良好跨平台性,但其性能却不如基于 TCP 协议 RPC

3.3K30

谷歌发布首款基于HTTP2和protobufRPC框架:GRPC

Google 刚刚开源了grpc,  一个基于HTTP2 和 Protobuf 高性能、开源、通用RPC框架。...WCF搭配Protobuf是一个很不错RPC实现,Google这个框架是是基于HTTP2,这是他有特色地方,带来诸如双向流、流控、头部压缩、单TCP连接上多复用请求等特性。...目前Firefox、Chrome、Safari、Opera、iOS版Safari、Android版Chrome、Windows 8上IE 11都已经支持HTTP/2,Windows 10预览版自带浏览器也支持它...Apache、Windows 10上IIS和Nginx都已经实现了SPDY 3.14(这就是HTTP/2),剩下工作就是网站管理员们去升级服务器软件了。...其中Java 语言实现亦可以用于Android 客户端,Objective-C 实现主要针对IOS 客户端。

1.2K70

NATSDart客户端

我看到了这个新基金会,云原生计算基金会,它似乎是街头新嘻哈孩子,所以我前往cncf.io,看看他们是否有他们吹嘘东西。然后,我遇到这个名为NATS新孵化项目。...tl;dr - 必要是发明母亲。 实际原因也简单。我正在编写一个带有无服务器触发器Flutter应用程序,NATS似乎没有Dart驱动程序。所以我写了!! 过程直截了当吗?是,是的。...NATS有非常直观基于文本协议。所以,我所要做是打开TCP套接字,并开始发送字节流:) 棘手部分?好吧,集群。...虽然我没有浏览其他驱动程序,当一个群集主机出现故障时,将订阅从一个主机移植到另一个主机有点棘手。但Dart拥有Future和Stream最佳流式抽象,所以,一旦掌握了它,就变得轻松。...谷歌正在大力投注Flutter;Dart现在可用共享代码库开发服务器iOSAndroid、MacOS、Linux和Windows应用程序;Flutter团队现在通过Hummingbird项目将Flutter

2K40

别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码

它通过自身IDL中间语言, 并借助代码生成引擎生成各种主流语言RPC服务端/客户端模板代码。 Thrift 是一个轻量级、独立于语言软件堆栈,用于 点对点 RPC 实现。...Thrift为数据传输提供了干净抽象和实现, 数据序列化和应用程序级处理。代码生成 系统以简单定义语言为输入并生成代码 跨使用抽象堆栈构建编程语言 可互操作 RPC 客户端和服务器。...Thrift支持多种不同编程语言,包括C++、Java、Python、PHP、Ruby等,本系列主要讲述基于Java语言Thrift配置方式和具体使用。...传输层(Transport Layer):传输层负责直接从网络中读取和写入数据,它定义了具体网络传输协议;比如说TCP/IP传输等。...从而省去开发者自定义和维护接口编解码、消息传输、服务器多线程模型等基础工作。 服务端:只需要按照服务骨架即接口,编写好具体业务处理程序(Handler)即实现即可。

67230

HTTP、WebSocket、gRPC WebRTC:哪种通信协议最适合您应用程序

客户端通常是在用户手机计算机上运行 Web 浏览器应用程序,但从技术上讲,它可以是任何东西,例如,抓取网站脚本。 HTTP 请求只能沿一个方向流动,即从客户端到服务器。...它还适用于分布式计算最后一英里,将设备、移动应用程序和浏览器连接到后端服务。 gRPC 是一个开源基于契约 RPC 系统,最初由谷歌开发。...如果您是在某个服务器上运行 Python 应用程序、GoLang CLI 或在 iOS 上运行 Flutter 应用程序怎么办?...双向流 RPC 客户端和服务器流媒体组合。聊天应用程序多人视频游戏是数据需要在客户端和服务器之间自由流动示例。 双向流式 RPC,双方使用读写流发送一系列消息。...该技术作为一组适用于所有主要浏览器 JavaScript API 和适用于 AndroidiOS 应用程序等本机客户端库提供。

65040

HTTP、WebSocket、gRPC WebRTC:哪种通信协议最适合您应用程序

客户端通常是在用户手机计算机上运行 Web 浏览器应用程序,但从技术上讲,它可以是任何东西,例如,抓取网站脚本。 HTTP 请求只能沿一个方向流动,即从客户端到服务器。...它还适用于分布式计算最后一英里,将设备、移动应用程序和浏览器连接到后端服务。 gRPC 是一个开源基于契约 RPC 系统,最初由谷歌开发。...如果您是在某个服务器上运行 Python 应用程序、GoLang CLI 或在 iOS 上运行 Flutter 应用程序怎么办?...双向流 RPC 客户端和服务器流媒体组合。聊天应用程序多人视频游戏是数据需要在客户端和服务器之间自由流动示例。 双向流式 RPC,双方使用读写流发送一系列消息。...该技术作为一组适用于所有主要浏览器 JavaScript API 和适用于 AndroidiOS 应用程序等本机客户端库提供。

83120

RPC框架:从原理到选型,一文带你搞懂RPC

因为调用方实际上也不清楚远程服务器应用程序是使用什么语言运行。那么对于调用方来说,无论服务器方使用是什么语言,本次调用都应该成功,并且返回值也应该按照调用方程序语言所能理解形式进行描述。...我们需要实现RPCProxyClient代理,代理invoke方法中封装了与远端服务通信细节,消费方首先从RPCProxyClient获得服务提供方接口,当执行helloWorldService.sayHello...由于是开源框架,通信双方可以进行二次开发,所以客户端和服务器端之间通信会更加专注于业务层面的内容,减少了对由gRPC框架实现底层通信关注。...gRPC既能够在客户端应用,也能够在服务器端应用,从而以透明方式实现两端通信和简化通信系统构建。...自动发现: 基于注册中心目录服务,使服务消费方能动态查找服务提供方,使地址透明,使服务提供方可以平滑增加减少机器。

22.5K812

If love, deep love:10 Most Useful iOS Libs

3)SocketRocket SocketRocket是一个WebSocket客户端(WebSocket是适用于Web应用下一代全双工通讯协议,被称为“WebTCP”,它实现了浏览器与服务器双向通信...只需在服务器上安装一次服务端,就可以处理bundle identifier不同多个应用程序(有开发者强烈建议对Debug、AdHocBeta和AppStore发布版使用不同Bundle identifier...) 默认当App启动唤醒时,客户端会从服务器检测更新,用户可以在设置对话框中修改这个设置:一天一次手动检测更新 除了支持iOS,HokeyKit也支持Android平台,不过Android版还处在Alpha...AFNetworking是一个轻量级iOS网络服务库。...它建立在NSURLConnection和NSOperation等基础上,让很多网络通信功能实现变得十分简单。

64320

Grpc 跨语言远程调用 python

与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。...在客户端拥有一个存根能够像服务端一样方法。因为 gRPC 对 HTTP/2 协议支持使其在 AndroidIOS 等客户端后端服务开发领域具有良好前景。...特性 基于HTTP/2 HTTP/2 提供了连接多路复用、双向流、服务器推送、请求优先级、首部压缩等机制。可以节省带宽、降低TCP链接次数、节省CPU,帮助移动设备延长电池寿命等。...gRPC通信方式 gRPC有四种通信方式: 1、 Simple RPC 简单rpc  这就是一般rpc调用,一个请求对象对应一个返回对象  proto语法: rpc simpleHello(Person...,从云服务器到你自己平板电脑—— gRPC 帮你解决了不同语言及环境间通信复杂性。

3.5K20

微服务 day05:消息中间件 RabbitMQ

erlang 语言开发,基于**AMQP(Advanced Message Queue 高级消息队列协议)**协议实现消息队列,它是一种应用程序之间通信方法,消息队列在分布式系统开发中应用非常广泛...2、基于 AMQP 协议。 3、社区活跃,文档完善。 4、高并发性能好,这主要得益于 Erlang 语言。...JMS是 java 提供一套消息服务API标准,其目的是为所有的 java 应用程序提供统一消息通信标准,类似 java jdbc,只要遵循 jms 标准应用程序之间都可以进行消息通信。...Erlang 语言一部分,包含了很多基于 Erlang 开发中间件及工具库,安装 RabbitMQ 需要安装 Erlang/OTP,并保持版本匹配,如下图: ?...RPC即客户端远程调用服务端方法 ,使用 MQ 可以实现 RPC 异步调用,基于 Direct 交换机实现,流程如下: 1、客户端即是生产者就是消费者,向 RPC 请求队列发送 RPC 调用消息,同时监听

1.4K20
领券