连接到lacewing服务器聊天

时间:2012-10-12 22:49:18

标签: java client connect libgdx liblacewing

我正在尝试使用lacewing和多媒体融合2为Android设备创建一个聊天程序的端口我的朋友。

我已成功创建了一个成功连接到服务器监听套接字的套接字,但我似乎无法将数据发送到登录并进入聊天。现在登录只需要一个名字,但即使我发送了一个数据字符串,服务器似乎也没有回复或接受这些数据让我通过该频道。

我知道我可以通过其他方式轻松移植它,例如使用多媒体融合2导出器的NDK,但我只想弄清楚它是如何工作的

PS:我正在使用Java和libgdx进行开发

1 个答案:

答案 0 :(得分:0)

您需要阅读liblacewing中继协议: https://github.com/udp/lacewing/blob/0.2.x/relay/current_spec.txt

在初始连接时,您必须发送字节0以标识您不是HTTP客户端。在此之后,您可以交换正常的协议消息。

您需要发送的第一条消息是连接请求(服务器可能会拒绝该消息)。这将是: 字节0(2.1.0请求)  (1.2尺寸) 字节0(2.1.0.0连接请求) 字符串“revision 3”(2.1.0.0连接请求 - >版本)

当服务器响应响应0(2.2.0.0连接)时,您必须先设置一个名称,然后才能加入任何通道。这是通过消息2.1.0.1 SetName完成的,它与上面的结构相同,而不是2.1.0.0的字节0,它是2.1.0.1的字节1,后面是名称作为字符串而不是协议版本

服务器应该响应2.2.0.1 SetName,假设它接受了您的名称更改请求。如果服务器提供的名称与您请求的名称不同,则应处理此消息。最后,一旦有了名称,就可以加入2.1.0.2 JoinChannel的频道。如果通道尚不存在(例如,还没有人在聊天中),将使用您在此处指定的标志 - 这些标志应与MMF2项目文件中的标志相匹配。名称也应该匹配。

毕竟,你还没有完成!你必须处理更多的消息等,这几乎就像你自己编写RelayClient类一样。这是一项艰巨的任务,但是随着协议规范的实施,您应该能够全力以赴。

相关问题