使用websocket当sse使用,其他一律走http请求,这样开发出来的im会不会好点?
chatGPT 用的是 MessageChannel
低频场景没问题,只要你自己能处理好时序问题就行(N 个 HTTP 请求彼此之间是独立的,从协议上无法保证顺序,但你业务上肯定是有顺序的)。
但话又说回来了,真的低频场景下 Long Polling 都够了,似乎 WebSocket 也没啥存在的必要
使用WebSocket进行即时通讯(IM)应用的开发,并结合HTTP请求来处理非实时数据交换,是一种在现代Web应用中常见的混合策略。以下是对你提出的方案的评估:
WebSocket和SSE都用于从服务器向客户端推送数据,但它们之间有几个关键区别:
在你的场景中,如果IM应用需要实时双向通信(如发送和接收消息),那么WebSocket是一个更合适的选择。WebSocket的双向通信能力使得它能够比SSE更有效地处理IM应用的实时性需求。
在你的架构中,使用HTTP请求来处理非实时数据交换(如用户登录、注册、加载用户资料等)是合理的。HTTP请求非常适合这些类型的操作,因为它们通常不需要实时响应,并且可以利用HTTP协议的丰富性和成熟性(如缓存、身份验证等)。
使用WebSocket作为IM应用的主要通信方式,并结合HTTP请求来处理非实时数据交换,是一个合理且有效的策略。这种混合方法能够充分利用两种技术的优势,为最终用户提供更好的体验。然而,你也需要考虑到WebSocket带来的开发复杂性和潜在的性能挑战,并采取相应的措施来确保应用的稳定性和可扩展性。
我正试图使用Guzzle6 http客户端发送一个post请求。我发送了两个请求,一个内容类型为(Guzzle),另一个为(Guzzle)。 我将客户机初始化如下(分别为和): 我收到的响应没有相同的数据/正文: :的输出 但是为什么我首先问这个问题是因为我面临签名不匹配的问题。 当我发送请求时,我添加了一个带有签名的头,签名是。因此,当以和的形式发送数据时,我得到了不同的签名(因为在的情况下,接
问题内容: 我正在尝试使用node.js将http请求发送到neo4j数据库。这是我正在使用的代码: 我检查数据库是否正在运行(我已连接到管理网页,并且一切正常。)恐怕问题不在数据库方面,而在node.js方面。 我希望有人可以对此问题有所启发。我想学习如何在node.js中发送http请求,答案不必特定于neo4j问题。 提前致谢 问题答案: 如果是简单的GET请求,则应使用 否则,需要关闭。
问题内容: 问题很简单。我想使用Node.js服务器作为代理,以记录,认证HTTP查询并将其转发到后端HTTP服务器(PUT,GET和DELETE请求)。 我应该为此使用哪个库?恐怕找不到。 问题答案: NodeJS支持将http.request作为标准模块:http ://nodejs.org/docs/v0.4.11/api/http.html#http.request
问题内容: 我一直在尝试从SO和其他站点上的大量示例中学习,但是我无法弄清楚为什么我一起学习的示例无法正常工作。我正在构建一个小型的概念验证应用程序,该应用程序可以识别语音并将其(文本)作为POST请求发送到node.js服务器。我确认了语音识别功能,并且服务器正在通过常规浏览器访问获得连接,因此我被认为是问题出在应用程序本身。我想念一些小而愚蠢的东西吗?没有引发任何错误,但是服务器从不识别连接。
我试图向远程服务器发送HTTP GET请求,并在HTML页面上使用响应。下面是project/js/script.js页面 在我的响应标题中,这是我得到的 远程地址:127.0.0.1:63342 请求URL:localhost:63342/object 请求方法:获取 状态代码:404未找到 请求头 接受:申请/json,文本/平原,/ 接受编码:gzip、deflate、sdch 接受语言:e
问题内容: 我试图弄清楚如何使用node.js发出HTTP PUT请求。我尝试了很多不同的方法,但是无法正常工作。 这个想法是要有一种放置文件的方法,例如: 任何帮助,将不胜感激。 问题答案: 以下是发送请求的示例:http : //nodejs.org/docs/v0.4.11/api/http.html#http.request,基本上,您只需将其更改为即可。 您可以使用createReadS