好烦吃不胖 2021-07-14 17:55 采纳率: 50%
浏览 20
已采纳

springwebsocket和http的区别是啥?

 @MessageMapping(GlobalConsts.HELLO_MAPPING)
    @SendTo(GlobalConsts.TOPIC)
    public ServerMessage greeting(ClientMessage message) throws Exception {
        // 模拟延时,以便测试客户端是否在异步工作
        Thread.sleep(1000);
        return new ServerMessage("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
    }

上边,服务端监听MessageMapping里面的url,然后通过SendTo把消息响应到前端对应的事件,这种方式还是需要客户端来触发,后端才能响应一个事件,感觉和http差别不大,除了它能发送给多个客户端。 如果客户端不给一个触发动作,后端是不是就不能主动发消息到前端了? 这和我理解的全双工通信不一样呢。我先在的需求就是后端如何主动发消息给客户端(客户端不主动发消息的前提)? 比如我有个需求,就是后端有个数据库操作,插入数据后我想通知前端拉取新数据,如何实现啊?

  • 写回答

1条回答 默认 最新

  • Aganstrong 2021-07-14 18:16
    关注

    HTTP是单向的,客户端发送请求,服务器发送响应。
    WebSocket是双向的,在客户端-服务器通信的场景中使用的全双工协议
    它们是两种不同的协议

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月14日
  • 创建了问题 7月14日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效