gpt4 book ai didi

javascript - 使用 AJAX 与 socket.io 套接字消息

转载 作者:行者123 更新时间:2023-12-02 15:34:27 25 4
gpt4 key购买 nike

我正在编写一个具有好友请求功能的聊天应用程序,目前使用 socket.io 事件在用户之间发送/接收消息。

我对于何时使用 AJAX 以及何时使用套接字(如果我有权访问套接字)存在冲突。即

$.ajax({url:'friendAdd'}) vs socket.emit('friendAdd');

我所有的好友请求逻辑。

在整个应用程序中保持一致并使用套接字处理所有其他请求会更好吗?还是有理由认为使用 AJAX 会更优化?

最佳答案

我想说这实际上取决于您正在做的事情的逐个请求。一旦建立了 socket.io 连接,从技术上讲,将其用于所有事情会更有效,因为连接已经在两端建立,因此您所要做的就是发送消息包。

但是,从客户端到服务器的某些请求(取决于它们是什么)可能会受益于服务器上已内置于 HTTP 框架(如 Express)中的某些 HTTP 基础设施。例如,如果您要上传文件,您可以通过 socket.io 连接来执行此操作,但是已经构建了很多代码来通过 HTTP 执行此操作,您可以直接使用这些代码,并且可能尚不存在用于执行此类操作的代码。通过 socket.io 请求。或者,如果您正在使用各种 Express 中间件来进行 session 、cookie、身份验证、路由等...利用 http 世界中所有现有的基础设施和模块可能会更容易,而不是尝试重新实现 socket.io消息。

就我个人而言,我倾向于将 socket.io 流量保留为聊天相关流量,显然任何必须由服务器推送的流量,然后使用常规 Ajax 调用来实现其他不直接聊天的功能。但是,那里没有确切的答案,这实际上取决于您认为最干净的架构和最好的功能封装。

仅供引用,在另一个答案中围绕此主题进行了一些有趣的讨论(和其他引用资料):Ajax vs Socket.io

关于javascript - 使用 AJAX 与 socket.io 套接字消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33058476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com