2016-07-07 85 views
0

我想实现一个Web服务器处理大型查询。单个请求的响应是巨大的。因此,我不想一次性发送大量回复,而是希望将其分成许多部分,然后单独发送。比如我有一个数组元素,而不是发送一个包含整个数组的响应,我想发送的响应只包含单个元素。Golang一个请求多个响应

我在这里有什么选择? Ajax似乎无法处理这种工作。我必须使用socket,websocket吗?流式响应怎么样?

我正在使用golang + angular,推荐使用任何库或资源?

+1

你必须继续提出请求。一个网络服务器不能只是发送数据给客户端,除非你有像一个不断开放的websocket这样的东西。我会说,你想要实现的是pagenation。在请求中,添加偏移量和限制的查询参数。让客户端迭代地发出请求,直到没有数据剩余为止,按每个请求的限制增加偏移量。后端应该总是返回一个数组,当给定偏移量处没有数据时,数组应该是空的,通知客户端它已完成对数据的分页。 – evanmcdonnal

+0

您也可以使用返回数组的长度来知道何时完成。如果长度<限制,那么你知道你得到了其余的结果,你可以停止提出请求。 – evanmcdonnal

+1

是的,分页是要走的路,否则在数据准备就绪的时候使用websockets并播放到房间。如果你想使用套接字,那么看看socket.io。在套接字上分页似乎也是一种选择,因为您可以简单地使用虚拟获取和发布请求,而不是实际的东西。 – ishaan

回答

0

我正在使用beego,并在后端部分使用[] map [string] interface {}数据类型来处理大数据。它响应多个可以角度处理的对象。