通过 Akka IO 和套接字的协议缓冲区消息

2024-02-20

我碰到这篇博文 http://cognitiveentity.wordpress.com/2012/02/23/simpler-akka-io-example/,我发现它很棒并且很有启发性,展示了如何对发送到 Akka IO 套接字服务器的字符串消息进行固定长度的帧处理。我一直在使用我发现的一个开源库这里叫ScalaBuff https://github.com/SandroGrzicic/ScalaBuff,它在协议缓冲区对象之上创建了一个漂亮的薄层。

我遇到的麻烦是调整博客作者(无法找到直接联系他的链接)代码以获取长度(4 字节序列),然后获取 protobuf 字节数组。我可以稍后再考虑确定哪条消息正在传输,现在我只想让代码能够处理一条示例消息。

我的问题是,我在将 Akka IO 代码从提取 akka ByteStrings 转换为能够发送和提取 protobuf 消息中的原始字节时遇到问题。这是我对使用 Akka IO 的套接字服务器不熟悉的症状。我可以访问和访问 protobuf 对象的字节表示(a僵尸目击 http://www.kotancode.com/2012/10/14/using-google-protocol-buffers-in-objective-c-on-ios-and-the-mac/),但我无法从博客中获取示例来处理字节数组而不是字符串。

如果有人有一些建议、一些示例代码或一些关于如何从 A 点(上面提到的博客文章)到 B 点(一个 Akka IO 套接字客户端,将 protobuf 消息发送到 Akka IO 套接字服务器)的输入。我想我的客户正在工作......也许),那就太棒了。


尝试这个:

val myByteArray = myByteString.toArray // converts to an Array[Byte]
val myMessage = MyMessage.defaultInstance.mergeFrom(myByteArray)

MyMessage 是 ScalaBuff 编译器使用 MyMessage.proto 模板生成的类。请注意,Google protobuf 库有一个单独的 ByteString 类,请确保不要将两者混合。

更新:Kevin 的问题已经解决,基本上问题是他使用 Array[Byte] 的 toString 方法,而不是将字节数组包装在 new String() 中,新 String() 正确地将字节数组转换为字符串,用于“%s”.format 调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Akka IO 和套接字的协议缓冲区消息 的相关文章

随机推荐

  • 如何以编程方式更改默认声音播放设备?

    如何以编程方式更改 vista 中播放和录制的默认音频设备 是否有像Windows XP中的声音管理器那样的注册表设置 哪个 API 可以实现 系统托盘音频设备切换器使用 Software Microsoft Multimedia Soun
  • 零寄存器如何提高性能?

    在 MIPS ISA 中 有一个零寄存器 r0 始终给出零值 这允许处理器 任何产生要被丢弃的结果的指令都可以将其目标定向到该寄存器 成为一个来源0 据说在这source https web archive org web 20170328
  • 使用 pyspark 结构化流计算移动平均列

    我正在使用 pyspark 处理一些传入的流数据 我想向我的数据帧添加一个具有 50 秒移动平均值的新列 我尝试使用带有 rangeBetween 的 Window 规范 import pyspark sql window as W w W
  • 导入 mysql.connector ModuleNotFoundError:没有名为“mysql.connector”的模块; “mysql”不是一个包

    导入 mysql connector ModuleNotFoundError 没有名为 mysql connector 的模块 mysql 不是一个包 pip 安装 mysql connector python rf python版本 3
  • 无法显示希腊字符 .mdb 文件(PHP 和 ODBC)

    我在显示 MS Access 2007 表中希腊语列中的文本时遇到问题 我正在使用 PHP 和 dbc odbc pconnect Driver Microsoft Access Driver mdb Dbq mdbFilename use
  • 使用 PHP 分块传输 FTP 上传?

    是否可以使用 PHP 进行 FTP 上传 我有文件需要上传到另一台服务器 但我只能通过 FTP 访问该服务器 不幸的是 我无法增加该服务器上的超时时间 有可能做到这一点吗 基本上 如果有一种方法可以写入文件的一部分 然后附加下一部分 并重复
  • 如何使用图像代替box-shadow来达到类似的效果?

    我想要实现如下图所示的框阴影效果 图片在这里 https i stack imgur com BpqGM png 但是我不想使用css3box shadow财产 这是因为我正在构建一个phonegap android应用程序 并且在使用时存
  • 使用react-loadable延迟加载组件的动态路径导入

    我正在使用 create react app 创建一个应用程序 并使用 React loadable 延迟加载组件 我想要做的是导入加载器对象或react loadble模块的Loadable函数的动态路径 Code const Loada
  • npm install 缺少模块

    在我能跑之前gulp在我的项目中我需要运行npm install 除了在我的计算机上之外 这都有效 因为我收到以下错误 Error Cannot find module socket io at Function Module resolv
  • 加密会话变量有安全方面的好处吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 所有字母的正则表达式

    我需要所有字母表的正则表达式 我有一个输入和目标文本 它们都可以属于不同的字母表 我的意思是它们可以属于中文 拉丁文 西里尔文和任何其他字母 我需要一个用于多语言输入和多语言目标文本的正则表达式 有人对此有任何想法吗 我该如何编写这个正则表
  • 容器中的共享库

    对于两个进程A和B 都使用库libc so libc so只加载到内存一次 当 A 和 B 都运行在同一主机和同一 rootfs 上时 这是正常情况 对于容器来说 如果A和B运行在不同的容器中 A和B是否共享相同的内存区域 例如 image
  • 在scala Spark2中运行saveAsNewAPIHadoopDataset到hbase时出现空指针异常

    我正在使用 saveAsNewAPIHadoopDataset 将 RDD 保存到 Hbase 中 以下是我的工作创建和提交 val outputTableName test3 val conf2 HBaseConfiguration cr
  • Excel VBA - 连接两个数组

    我需要将两个数组 vd 和 vd1 连接到 vdu 中 ReDim vdu 1 To UBound vd 1 UBound vd1 1 1 To 1 For i 1 To UBound vd 1 vdu i 1 vd i 1 Next i
  • VB 中的 With 语句中有多个对象吗?

    我在 VB 中使用了很多标签With语句来设置它们的属性 Problem有什么办法我可以做类似以下的事情 With lblA lblB lblC fontColor color Red End With 这可能吗 还是我必须手动执行With
  • 删除 BeautifulSoup 分解后变空的行

    我试图从文件中删除某些 HTML 标签及其内容BeautifulSoup 如何删除应用后变为空的行decompose 在这个例子中 我想要之间的线a and 3消失 因为这是 span span 块了 但到底不行 from bs4 impo
  • Django ..“加入”查询?

    伙计们 Django 中的 join 查询如何或在哪里 我认为 Django 没有 加入 但是我将如何加入 Thanks 如果您使用模型 则 select lated 方法将返回您在该模型中设置的任何外键 最多达到您指定的限制 的对象
  • Firebase + React Native:离线身份验证

    我在 React Native iOS 应用程序中使用 Firebase 主要用于存储用户数据和用户身份验证 效果很好当设备确实有可用的网络连接时 当谈到Firebase的离线功能时 它看起来像这样 问题 在没有网络连接的情况下启动应用程序
  • 在 C# 中有效读取超大文件。目前使用 StreamReader

    我有一个大小为 50GB 及以上的 Json 文件 以下是我编写的用于读取一小部分 Json 的内容 我现在需要修改它以读取大文件 internal static IEnumerable
  • 通过 Akka IO 和套接字的协议缓冲区消息

    我碰到这篇博文 http cognitiveentity wordpress com 2012 02 23 simpler akka io example 我发现它很棒并且很有启发性 展示了如何对发送到 Akka IO 套接字服务器的字符串