假设我有一个文本框/搜索框 <input type="search"> 当光标聚焦在搜索框中时,我希望将其连接到服务器。 该应用程序旨在广泛使用,搜索框监听每个按键事件。 您认为像上面示例那样的搜索框是否适合使用WebSockets实现?
从您的话中我猜测您想要实现类似于搜索框自动完成建议或搜索即时响应的功能。在我的经验中,WebSocket非常适合这些用例。WebSocket延迟低,所以结果返回得非常快。通过快速的后端和服务器以及用户不太远的位置,您可以获得接近本地性能的效果。WebSocket仅在有实际流量时才使用带宽,因此连接多个搜索框不会产生任何流量惩罚。我编写了一个演示应用程序,它使用WebSocket连接获取搜索框的自动完成建议(在Oracle DB后端中搜索100万条记录)。该演示目前不在线,但您可以查看代码。演示中的WebSocket部分非常容易实现。演示在浏览器中使用AutobahnJS,它在原始WebSocket之上提供了一些舒适函数,并实现了PubSub + RPC协议(WAMP)。例如用于请求自动完成数据的代码非常简单(第717行)。它需要一个crossbar.io服务器和一个Oracle DB才能运行,而crossbar.io项目的网站目前正在建设中。所以目前无法轻松运行。完全披露:我为Tavendo工作,他们启动了Autobahn和crossbar.io项目。这只是例子 - 还有其他WebSocket技术可供使用。这只是我熟悉的内容。