sách gpt4 ai đã đi

java - 假装同步的异步 websocket 机制

In lại 作者:太空宇宙 更新时间:2023-11-04 15:04:09 27 4
mua khóa gpt4 Nike

我不是在寻找具体答案,只是一个想法或提示。我有以下问题:

Android 应用程序是 Web 服务的客户端。它有一个线程,通过 http 协议(protocol)发送事件(带有请求 ID 的 XML 形式),并且对于每个请求,服务器都会发送确认,表明他正确地理解了授予事件 ID 的消息 - 服务器是少数客户端的同步器。我也想使用 websocket 协议(protocol)通过 websocket 发送事件,但这有点棘手 - 而不是 http,我不希望得到每个请求的响应。此外,传入的 websocket 消息在其他线程中解析。主要机制有点杂乱,我不想从头开始编写所有内容。

我想让这个异步websocket机制假装是同步的。现在我的想法是 - 通过 websocket 发送事件后,我将不再等待例如 5 秒的响应,该响应将在其他线程中处理(它以 XML 形式出现),并且关于请求 ID,它会通知适当的暂停线程。我担心 Condition.await() 和 condition.signal 不是最好的主意,你觉得怎么样?

根据这个问题,我意识到我在项目这种机制方面存在问题。您是否有想法,我在哪里可以找到有关良好模式和技巧的信息,这些信息对现在有好处,可以避免不良方法?提前致谢!

1 Câu trả lời

websocket 和 HTTP 请求之间的唯一区别是消息传入时缺少 HTTP header 。在 websocket 中,您有一个心跳来保持连接处于 Activity 状态并允许全双工通信,然后您就拥有了纯有效负载。您的工作是找到将使用哪些消息 header 在服务器/客户端中正确路由请求。

因此,这并不能阻止您通过在接收后立即写入输出流来以请求/响应方式进行通信。我建议你看一下 RFC

https://www.rfc-editor.org/rfc/rfc6455

如果您更注重视觉效果,此幻灯片可以提供帮助:

http://www.slideshare.net/sergialmar/websockets-with-spring-4

或者,如果您想要一些更严肃的实现作为示例,请查看 spring 的文档:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

关于java - 假装同步的异步 websocket 机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225008/

27 4 0
Bài viết được đề xuất: css - 如何设置元素的高度与其父元素相同
Bài viết được đề xuất: c++ - 缺少析构函数声明
Bài viết được đề xuất: html - CSS 按钮悬停背景样式子项
Bài viết được đề xuất: java - XMPP 和 Android 第 2 部分
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com