python基于protobu+websocket+tornado实现多种二进制协议消息的接收发送和解析demo

protobuf方面资料实在少,中文资料更少。由于公司需要,自己看文档写了一个demo

代码放到 :https://git.oschina.net/sengo/ws_protobuf

说明:

demo自定义了5种protobuf消息, 用户发送消息时,通过把定义的protobuf消息类型编号(4字节 int32)和 接收方的用户ID(4字节 int32) 写入二进制protobuf头部,

接收到消息时把二进制消息头部截取出8个字节, 前4个字节是消息类型编号,后4个字节是用户编号。

通过消息编号取出对应的protobuf协议模板解析消息。

之后再把消息中第4~8个字节(接收方用户编号)取出,截取替换成发送方的用户编号,发送消息给接收方


项目从 http://localhost:8222/login 进

打开F12前端控制台查看消息

您可以使用RabbitMQ、Spring Boot和WebSocket实现前端可发送接收消息的功能。下面是一个基本的实现步骤: 1. 首先,确保您的Spring Boot项目中已经添加了RabbitMQ和WebSocket的依赖。 2. 在Spring Boot应用程序中配置RabbitMQ,括连接配置和队列配置。您可以使用`@Configuration`注解创建一个配置类,并使用`@Bean`注解创建一个`ConnectionFactory`和一个`RabbitTemplate`实例。 3. 创建一个消息接收器(Consumer)来监听RabbitMQ队列中的消息。您可以使用`@RabbitListener`注解将一个方法标记为消息接收器,并指定要监听的队列名称。 4. 在Spring Boot应用程序中配置WebSocket括处理器和拦截器等。您可以使用`@Configuration`注解创建一个配置类,并使用`@Bean`注解创建一个`WebSocketHandler`和一个`HandshakeInterceptor`实例。 5. 创建一个WebSocket处理器(Handler)来处理前端发送消息。您可以实现`WebSocketHandler`接口,并重写相应的方法来处理连接、消息发送和关闭等事件。 6. 在WebSocket处理器中,您可以使用RabbitTemplate将接收到的消息发送到RabbitMQ队列中。您可以在处理器的`handleTextMessage()`方法中调用RabbitTemplate的相关方法来发送消息。 7. 在前端页面中,使用JavaScript或其他框架来建立WebSocket连接,并发送接收消息。您可以使用WebSocket的API来发送接收消息,并在接收消息时更新页面内容。 通过以上步骤,您可以实现前端可发送接收消息的功能。当前端发送消息时,WebSocket处理器会接收消息并将其发送到RabbitMQ队列中。然后,消息接收器会监听该队列,并将消息发送给其他需要接收消息的客户端。这样,前端页面就可以实现实时的消息发送接收功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值