对于我正在计划的网站,我需要服务器能够将命令发送到登录用户的浏览器。
Simplic示例:当呼叫中心代表接听电话时,我想自动拉出正在呼叫的主管。
我已经完成了剩下的技术,我需要一起了解与浏览器的实际通信是如何工作的。
从我目前的研究来看,这通常是通过桌面软件或插件完成的,但此时感觉还很老。我知道它可以用javascript来完成,或者通过写一些不断轮询服务器命令的东西(这可能有用,但感觉有点浪费和暴力 - 或)或其他一些技术为服务器提供了一种呼叫客户端的方法。
类似于stackoverflow使用的任何机制来告诉你当前问题已经得到新的答案可能会成功。
那么有一个已知的最佳实践吗?什么对你有用?
答案 0 :(得分:3)
WebSockets和长轮询可能是一个很好的答案,正如其他答案所示。但是也要确保在后端(系统的非浏览器,大铁部分)上调查需要支持的sw。如果每个浏览器需要一个始终打开的文件描述符,那么可以加起来。 - 有一些方法可以添加对更多文件描述符的支持,但是决定这是否是你想要的道路。
从整个系统的角度来看,它可能(或可能不)更容易设置轮询系统。轮询服务器没有任何问题,特别是专门的低开销,“我现在没有任何东西” - 型服务器。
请记住,您希望您的解决方案更加强大。它应该能够顺利处理客户端断开连接,重新启动,间歇性网络故障等。
请记住测试以上所有内容....
答案 1 :(得分:2)
我相信这是新的web套接字html 5标准试图创建的,打开服务器和客户端之间的连接以允许双向通信。但在该标准出台之前,我目前还没有发现任何其他方式。
答案 2 :(得分:2)
服务器通常无法调用客户端。为此,必须在客户端安装一个可以监听和响应的服务器软件。在网络浏览器的情况下,没有这样的事情。所以你唯一能做的就是轮询服务器并检查你是否有新的东西。
编辑:
我做了一点测试,看看stackoverflow是如何工作的。我的结论是使用以下系统进行定期轮询。当您想要添加答案时,会向服务器发送一个发布请求,也许是为了启动一个计数器。在那之后的某个时间间隔,请求被发送到/ posts / ID / editor-heartbeat / edit发送草稿(您在此之前设法键入的内容),并且响应是包含您的请求的成功状态和消息数量的josn在那之前发布的地方。如果该数字不等于0,则显示该栏提醒您。
答案 3 :(得分:1)
Websockets是你想要的。
答案 4 :(得分:1)
执行此操作的传统方法是定期从客户端发送XHRequests,询问“您有新消息吗?”
有更好的方式,涉及不关闭TCP连接和/或iframe;如果你有兴趣,你可以谷歌搜索GMail如何做到这一点。
Websockets是一项相当新的技术,只能在最新的浏览器上实现,但我可能会冒险。