3

假设我有一个文本框/搜索框

<input type="search">

然后我只想在光标聚焦在搜索框中时将其连接到服务器。

该应用程序旨在供 Internet 范围内使用,搜索框会监听每个按键。

你认为 WebSockets 是像上面例子这样的搜索框的一个很好的实现吗?

4

1 回答 1

6

从您所说的来看,我猜您想为搜索框实现自动完成建议或按您键入时搜索之类的东西。根据我的经验,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 技术。这只是我所熟悉的。

于 2013-11-01T13:17:50.357 回答