假设我有一个文本框/搜索框
<input type="search">
然后我想只在光标聚焦在搜索框中时才将它连接到服务器。
该应用程序适用于Internet范围,搜索框可以监听每个按键。
你认为WebSockets是一个很好的搜索框实现,如上例所示吗?
答案 0 :(得分:5)
根据您的说法,我猜你想要实现类似seachbox的自动填充建议,或者搜索你的类型。根据我的经验,WebSocket适用于这些用例。
WebSocket是低延迟的,因此结果会很快恢复。使用快速后端和服务器离用户不远,您可以获得接近本机的本地性能。
如果有实际流量,WebSocket也只会占用带宽,因此您无法为连接多个搜索框而支付任何流量费用。
我编写了一个演示应用程序,它使用WebSocket连接获取搜索框的自动填充建议(在Oracle DB后端搜索100万条记录)。该演示目前尚未在线,但您可以查看https://github.com/tavendo/WebMQDemo/tree/master/web/demo/autocomplete
处的代码演示的WebSocket部分非常容易实现。该演示在浏览器中使用AutobahnJS,它在原始WebSocket之上提供了一些舒适功能,并实现了PubSub + RPC协议(WAMP)。代码,例如对于自动完成数据的请求非常简单(第717行)。
它需要运行crossbar.io服务器和Oracle DB - 而crossbar.io项目的网站目前正在建设中。所以目前还不容易这样做。
完全披露:我为Tavendo工作,开始了Autobahn和crossbar.io项目。两者都只是作为示例给出的 - 您可以使用其他WebSocket技术。这正是我熟悉的。