Javascript 用于小型传输的Ajax或WebSocket

Javascript 用于小型传输的Ajax或WebSocket,javascript,html,ajax,websocket,socket.io,Javascript,Html,Ajax,Websocket,Socket.io,我正在建立一个聊天网站,它使用Websockets(Socket.io)向服务器发送和接收消息。事实上,我的网站应该使用Websocket,现在我的问题是,对于其他传输,比如在登录时检查用户名或获取JSON和更新DOM等,我可以使用相同的技术(Websockets),还是必须使用Ajax?我知道,以Websockets的方式,服务器和客户端将有一个持久的连接 最好的方法是什么?使用Websockets不适合这些用途?为什么?您可以使用WebSocket。不同之处在于WebSocket客户端始终处

我正在建立一个聊天网站,它使用
Websockets(Socket.io)
向服务器发送和接收消息。事实上,我的网站应该使用
Websocket
,现在我的问题是,对于其他传输,比如在登录时检查用户名或获取
JSON
和更新
DOM
等,我可以使用相同的技术(
Websockets
),还是必须使用Ajax?我知道,以
Websockets
的方式,服务器和客户端将有一个持久的连接


最好的方法是什么?使用
Websockets
不适合这些用途?为什么?

您可以使用WebSocket。不同之处在于WebSocket客户端始终处于连接状态。您将拥有一个处理程序,在消息从客户端流入时处理消息(可能只是json blob,可能带有某种messageType字段)

这意味着服务器端的处理基本上是相同的,除了通过不同的HTTP请求(通过不同的路由)为响应提供服务之外,您可以通过比switch语句简单得多的方式将请求分派给相应的处理程序。然后,任何结果都会通过具有类似处理机制的websocket发送回客户端

一个缺点是并非所有浏览器都支持WebSocket,因此如果您需要支持JSON的回退路径,那么对aux请求使用回退JSON处理程序肯定会更容易(因为您无论如何都要编写它们)


否则,差异可能很小。我更关心的是代码的整洁。

如果你管理的网站包含WebSocket和聊天系统,你也应该熟悉ajax,因为在这样的网站上,ajax的使用频率会更高,而且,由于对任何和所有异步请求使用WebSocket都会对浏览器和服务器造成不必要的开销。请记住,WebSocket不支持捕获,如果您计划提供任何大小的静态内容,则应使用ajax。