使用AJAX与套接字.IO socket消息
Using AJAX vs. socket.io socket messages
我正在编写一个具有好友请求功能的聊天应用程序,目前使用套接字。用于在用户之间发送/接收消息的IO事件。
在访问套接字的情况下,我在何时使用AJAX和何时使用套接字方面存在冲突。例如
$.ajax({url:'friendAdd'}) vs socket.emit('friendAdd');
表示我所有的好友请求逻辑。
在整个应用程序中保持一致并对所有其他请求使用套接字会更好吗?还是有理由使用AJAX会更优?我想说这真的取决于你正在做的每个请求的基础。一旦你有了插座。IO连接建立,从技术上讲,将它用于所有事情更有效,因为连接已经在两端建立,因此您所要做的就是发送消息包。
但是,从客户机到服务器的一些请求(取决于它们是什么)可能受益于一些已经内置到服务器上的HTTP框架中的HTTP基础设施(如Express)。例如,如果要上传文件,可以通过套接字完成。但是有很多代码已经构建好了,可以在HTTP上做这个,你可以直接使用这些代码可能还不存在,可以在socket。io上做这种类型的请求。或者,如果您正在使用各种Express中间件进行会话、cookie、身份验证、路由等…利用HTTP世界中所有现有的基础设施和模块可能比尝试为套接字重新实现要容易得多。io消息。
我个人倾向于保留套接字。io流量只与聊天相关的流量,显然任何必须是服务器推送的东西,然后使用常规的Ajax调用其他不直接聊天的功能。但是,没有确切的答案,这真的取决于你认为什么是最干净的架构和最好的功能封装。
供参考,关于这个主题的一些有趣的讨论(和其他参考)在另一个答案中:Ajax vs Socket.io
相关文章:
- 通过node.js和socket.io在两个用户之间发送消息
- Socket.IO 客户端库提供“欢迎来到 socket.io”消息
- 正在获取丢失的错误处理程序套接字消息,无法读取属性'timerID'使用Node.js和Socket.i
- 为什么我的消息没有用这个处理程序发送到Socket.io房间
- 在socket.io中从客户端发送广播消息
- 发送消息时,Socket.io聊天重新加载页面
- Socket.IO聊天不发送和/或接收消息
- 如何确保客户端已收到通过socket.io发送的消息
- socket.io 客户端,不会向服务器发出消息
- Socket.io,给自己发消息
- socket.io 不记录控制台消息
- 向聊天室发送消息 socket.io 节点.js
- Socket.io 向某些套接字(体系结构)发出消息
- 向节点.js和 socket.io 中的单个套接字发送消息
- Socket.io 无法连续发送两条消息
- 为服务器中的每个客户端累积消息 Socket.io
- node js 从 tcp socket net.createServer 读取特定消息
- 如何使用 socket.io 发送消息
- Socket.io,防止不同的页面接收到每条消息
- 使用AJAX与套接字.IO socket消息