Ajax 或用于小型传输的 Websockets
Ajax or Websockets for small transmissions
我正在构建一个使用 Websockets(Socket.io)
向服务器发送和接收消息的聊天网站。事实上我的网站应该使用 Websocket
现在我的问题是对于其他传输比如在登录时检查用户名或获取 JSON
和更新 DOM
和其他东西,我可以使用相同的技术( Websockets
) 或者我必须使用 Ajax?我知道以 Websockets
的方式,服务器和客户端将有一个持久的连接。
最好的方法是什么?使用 Websockets
对这些目的不好吗?为什么?
您可以使用网络套接字。不同之处在于 websockets 客户端始终处于连接状态。当消息从客户端流入时,您将拥有一个处理消息的处理程序(可能只是 json blob,可能带有某种 messageType 字段)。
这意味着服务器端处理基本相同,除了不是通过不同的 HTTP 请求(通过不同的路由)提供响应,而是通过比 switch 语句复杂不了多少的东西将请求分派给适当的处理程序.然后通过具有类似处理机制的 websocket 将任何结果发送回客户端。
一个缺点是并非所有浏览器都支持 websockets,因此如果您需要支持 JSON 的后备路径,那么使用辅助请求的后备 JSON 处理程序肯定更容易(因为您无论如何都会写的)。
否则差异可能很小。我会更关心代码的整洁度。
我正在构建一个使用 Websockets(Socket.io)
向服务器发送和接收消息的聊天网站。事实上我的网站应该使用 Websocket
现在我的问题是对于其他传输比如在登录时检查用户名或获取 JSON
和更新 DOM
和其他东西,我可以使用相同的技术( Websockets
) 或者我必须使用 Ajax?我知道以 Websockets
的方式,服务器和客户端将有一个持久的连接。
最好的方法是什么?使用 Websockets
对这些目的不好吗?为什么?
您可以使用网络套接字。不同之处在于 websockets 客户端始终处于连接状态。当消息从客户端流入时,您将拥有一个处理消息的处理程序(可能只是 json blob,可能带有某种 messageType 字段)。
这意味着服务器端处理基本相同,除了不是通过不同的 HTTP 请求(通过不同的路由)提供响应,而是通过比 switch 语句复杂不了多少的东西将请求分派给适当的处理程序.然后通过具有类似处理机制的 websocket 将任何结果发送回客户端。
一个缺点是并非所有浏览器都支持 websockets,因此如果您需要支持 JSON 的后备路径,那么使用辅助请求的后备 JSON 处理程序肯定更容易(因为您无论如何都会写的)。
否则差异可能很小。我会更关心代码的整洁度。