什么限制了 SSE(服务器发送事件)连接的数量?
我一直在使用 django/gunicorn/django-sse 进行项目。
当我限制到页面的 sse 连接数(5 个工作 6 个挂起)时,我的项目效果很好,这不是一个大问题,因为我使用分页,因此可以限制每页的数量。但我更希望能够拥有尽可能多的东西。
我的问题是:是连接数减慢了速度,还是正在传输的数据量?
我认为我可以通过让他们共享连接来解决第一个问题,但第二个问题可能会限制我更多。
有什么想法吗?
编辑:
客户端 JS SSE 代码:
function event(url, resource_name, yes, no, audio_in, audio_out, current_draw){
/**
* Listens for events posted by the server
*
* Useful site for understanding Server Sent Events:
* http://www.w3.org/TR/eventsource/
*/
var source = new EventSource(url);
source.addEventListener("message", function(e) {
resetTime(resource_name);
data = updateStatus(e.data, yes, no, audio_in, audio_out, current_draw);
document.getElementById(resource_name+"-in").src = data.audio_in_src
document.getElementById(resource_name+"-in").alt = data.audio_in_alt
document.getElementById(resource_name+"-out").src = data.audio_out_src
document.getElementById(resource_name+"-out").alt = data.audio_out_alt
document.getElementById(resource_name+"-current").innerHTML = data.current_draw + " A"
});
}
在views.py中
class ServerSentEvent(RedisQueueView):
def get_redis_channel(self):
"""
Overrides the RedisQueueView method to select the channel to listen to
"""
return self.kwargs["resource_name"]
在 urls.py
urlpatterns = patterns('',
url(r'^$',
views.Resources_page.as_view(),
name='resources_page'),
url(r'^(?P<resource_name>\w+)/$',
views.StatusPage.as_view(),
name='status_page'),
url(r'^(?P<resource_name>\w+)/sse/$',
views.ServerSentEvent.as_view(),
name='sse'),)