Python 套接字 - 创建消息格式
我搭建了一个Python服务器,多个客户端可以连接到这个服务器。我需要设置一系列预定义的消息,让客户端能够发送给服务器,比如客户端在第一次连接时传递一个名字给服务器。
我在想,处理这个问题的最佳方法是什么呢?我应该如何建立一个简单的通信协议呢?
这些消息是否应该以一组特定的字节开头,以便标识它们属于这个协议,然后再包含某种消息ID?如果有建议或者进一步的阅读资料,我会很感激。
3 个回答
1
先看看一些协议,找一个看起来符合你需求的。你需要的是面向消息的协议还是面向流的协议?请求的顺序需要保持吗?请求和响应需要配对吗?你需要消息的标识符吗?需要重试机制和延迟吗?这是一个远程过程调用(RPC)协议,还是一个消息队列协议呢?
2
根据你的需求,你可能想考虑使用JSON:用“换行符”结束的字符串和JSON编码。传输协议可以是HTTP:这样你就可以使用所有与“连接相关”的功能(比如状态码),并且可以发送JSON编码的数据。
使用JSON通过HTTP的好处有:
- 人类可读(方便调试等)
- 所有语言/平台都有现成的库可以使用
- 跨平台
- 在浏览器中可以调试(在一定程度上)
当然,还有很多其他的方法可以实现这个目标,但用这种方式制作一个工作原型的时间非常短。如果你的需求(这里没有详细说明)能够满足,这个方法是值得考虑的。