Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript向客户端发送命令_Javascript_Jquery_Web Services_Webservices Client - Fatal编程技术网

使用Javascript向客户端发送命令

使用Javascript向客户端发送命令,javascript,jquery,web-services,webservices-client,Javascript,Jquery,Web Services,Webservices Client,对于我正在规划的站点,我需要服务器能够向登录用户的浏览器发送命令 简单的例子:当呼叫中心代表接到一个电话时,我想自动拉起正在打电话的潜在客户 我已经把剩下的技术整理好了,我需要把与浏览器的实际通信如何工作的草图放在一起 从我到目前为止的研究来看,这通常是通过桌面软件或插件完成的,但在这一点上,这感觉很老套。我知道javascript可以做到这一点,可以编写一些不断轮询服务器的命令(这可能会起作用,但感觉有点浪费和暴力),也可以通过一些其他技术让服务器能够调用客户端 stackoverflow用来

对于我正在规划的站点,我需要服务器能够向登录用户的浏览器发送命令

简单的例子:当呼叫中心代表接到一个电话时,我想自动拉起正在打电话的潜在客户

我已经把剩下的技术整理好了,我需要把与浏览器的实际通信如何工作的草图放在一起

从我到目前为止的研究来看,这通常是通过桌面软件或插件完成的,但在这一点上,这感觉很老套。我知道javascript可以做到这一点,可以编写一些不断轮询服务器的命令(这可能会起作用,但感觉有点浪费和暴力),也可以通过一些其他技术让服务器能够调用客户端

stackoverflow用来告诉你当前问题的新答案的任何机制都可能起作用


那么,有没有已知的最佳实践?什么对你有用?

就是你想要的

就是你想要的

我相信这正是新的web套接字html 5标准试图创建的,它打开了服务器和客户端之间的连接,允许双向通信。但在该标准开始流行之前,我目前还不知道除了轮询之外还有什么其他方法。

我相信这就是新的web sockets html 5标准试图创建的,在服务器和客户端之间打开一个连接以允许双向通信。但是在这个标准开始流行之前,我目前还不知道除了轮询之外还有什么其他方法。

服务器通常不能调用客户端。为了做到这一点,必须在客户端安装一个能够监听和响应的服务器软件。在网络浏览器的情况下,没有这样的东西。因此,您唯一能做的就是轮询服务器并检查是否有新的内容

编辑:


我做了一个小测试,看看stackoverflow如何处理这个问题。我的结论是使用以下系统进行定期轮询。当您想要添加答案时,会向服务器发送post请求,可能是为了启动计数器。之后,每隔一段时间,将请求发送到/posts/ID/editor heartbeat/edit发送草稿(在此之前您一直设法键入的内容),响应是一个josn,其中包含请求的成功状态以及在此之前发布的消息数。如果该号码不同于0,则会显示条提醒您。

服务器通常无法呼叫客户端。为了做到这一点,必须在客户端安装一个能够监听和响应的服务器软件。在网络浏览器的情况下,没有这样的东西。因此,您唯一能做的就是轮询服务器并检查是否有新的内容

编辑:


我做了一个小测试,看看stackoverflow如何处理这个问题。我的结论是使用以下系统进行定期轮询。当您想要添加答案时,会向服务器发送post请求,可能是为了启动计数器。之后,每隔一段时间,将请求发送到/posts/ID/editor heartbeat/edit发送草稿(在此之前您一直设法键入的内容),响应是一个josn,其中包含请求的成功状态以及在此之前发布的消息数。如果该数字不同于0,则显示该条以提醒您。

传统的方法是定期从客户端发出请求,询问“您有新消息给我吗?”

还有更奇特的方法,包括不关闭TCP连接和/或iFrame;如果你感兴趣,你可以在谷歌上搜索GMail是如何做到这一点的


WebSocket是一项相当新的技术,只在绝对最新的浏览器上实现,尽管我可能会冒这个风险。

传统的方法是定期从客户端发出请求,询问“您有新消息给我吗?”

还有更奇特的方法,包括不关闭TCP连接和/或iFrame;如果你感兴趣,你可以在谷歌上搜索GMail是如何做到这一点的


WebSocket是一项相当新的技术,它只在绝对最新的浏览器上实现,尽管我可能会冒这个风险。

正如其他答案所示,WebSocket和长轮询可能是一个很好的答案。但也要确保调查后端(非浏览器,系统的重要组成部分)所需支持的软件。如果每个浏览器都需要一个始终打开的文件描述符,这可能会增加。-有很多方法可以增加对更多文件描述符的支持,但要确定这是否是您想要走的路

从整个系统的角度来看,设置轮询系统可能(也可能不)更容易。轮询服务器并没有什么问题,特别是一个专门的低开销服务器,“我现在什么都没有给你们了”——类型的服务器

请记住,您希望您的解决方案是健壮的。它应该能够顺利地处理客户端断开连接、重新启动、间歇性网络故障等


请记住测试以上所有内容。…

正如其他答案所示,WebSocket和长轮询可能是一个很好的答案。但也要确保调查后端(非浏览器,系统的重要组成部分)所需支持的软件。如果每个浏览器都需要一个始终打开的文件描述符,这可能会增加。-有很多方法可以增加对更多文件描述符的支持,但要确定这是否是您想要走的路

从整个系统的角度来看,设置轮询系统可能(也可能不)更容易。轮询服务器并没有什么问题,特别是一个专门的低开销服务器,“我现在什么都没有给你们了”——类型的服务器

请记住,您希望您的解决方案是健壮的。它应该能够顺利地处理客户端断开连接、重新启动、间歇性网络故障等

记住要测试以上所有内容……

除非您的服务器是用JavaScript编写的,否则您不会真正用JavaScript发送命令,对吗?不管怎么说,谷歌的“lo”