问题标签 [server-push]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从服务器到客户端的消息
我必须设计一个在运行Ruby on Rails的网站上模拟的客户端/服务器系统,它应该像这样工作:
Web浏览器请求一个页面,一旦打开,服务器就可以向它推送消息
我知道这“自然地”是不可能的,但我正在考虑一种在该页面上运行的“java 小程序”,它在端口上侦听要由托管服务器发送的消息。这应该通过打开一种套接字来完成,该套接字侦听服务器可以连接的某个端口以发送其消息。
这可以做到吗?我是否必须开发一个 java 服务器线程,或者我可以简单地通过它的 IP 地址和端口来寻址客户端小程序并使用来自服务器的任何 Web 服务连接?
谢谢,卢卡
php - 推送问题和帮助
伙计们,我正在研究有关“推送”技术的信息,但我想我可能以错误的方式听说过它。有什么有趣的事情我应该知道吗?如何在 PHP 中完成?可以用PHP完成吗?push 背后的总体思路是什么?
谢谢
iphone - 如何进行 HTTP 服务器推送——也就是我需要 STOMP、AMPQ 等吗?
我正在编写一组 Web 服务,其中一个需要实现服务器推送。
客户端将是本机 Objective-C。我希望它尽可能简单、快速和轻量级。传输的数据将是 JSON。是否可以在不使用消息代理的情况下做到这一点?
ruby-on-rails - 如何在 Internet Explorer 中测试 Rails Juggernaut?
我的 Rails 应用程序有问题。我使用juggernaut进行服务器推送,它在 Firefox、Opera 和 Chrome 中运行良好,但在 IE 中根本不起作用。它应该与 IE6+ 兼容。
问题是,我找不到任何可以像 Firebug 在 Firefox 中那样监控网络的调试工具。我试过IE调试栏,但没有关于AJAX和网络的任何东西。
我在默认主宰设置上运行,它甚至没有连接到推送服务器。
wcf - WCF 服务器推送连接测试。平()?
使用提示的技术:
我正在为我的 API 实现一个 ServerPush 设置,以从事件服务器(无轮询)获取实时通知。基本上,服务器有一个 RegisterMe() 和 UnregisterMe() 方法,客户端有一个称为 Announcement(string message) 的回调方法,通过 WCF 中的 CallbackContract 机制,服务器可以调用。这似乎运作良好。
不幸的是,在此设置中,如果服务器崩溃或不可用,客户端将不知道,因为它只是在侦听消息。在线沉默可能意味着没有公告,或者可能意味着服务器不可用。
由于我的目标是减少轮询而不是即时性,因此我不介意在服务器上添加一个 void Ping() 方法以及 RegisterMe() 和 UnregisterMe() ,该方法仅用于测试与服务器的连接性。我相信,定期测试这种方法可以确保我们仍然保持连接(并且传输没有丢弃任何公告,因为这是 TCP)
但是 Ping() 方法是必需的还是默认情况下作为 WCF 的一部分提供的连接测试 - 例如 serverProxy.IsStillConnected() 或其他东西。据我了解,通道的状态只会在失败的 Ping() 之后返回故障或关闭,而不是代替它。
2)从更广泛的角度来看,这种回调方法是否可靠?这不适用于 http 或 ajax - 连接的客户端数量将很少(数十个客户端,最大)。这种方法是否存在严重问题?由于这似乎是一个轻微的风险,我如何通过不足够快地处理它的回调队列来限制慢速/恶意客户端阻塞服务器?是否有一种特定于回调的超时,我可以设置而不影响其他操作?
multithreading - 惰性套接字 - 可扩展性?
在理论上询问更多,我如何构建使用惰性套接字的服务器(或应用程序)?我正在设想一个 Web 应用程序,它通过 JSON 交换将其所有数据移动到一个中央 API 类 servlet。在传输完所有数据后,我可以让 HTTP 连接保持打开状态,以便向客户端写入更多内容,作为一种惰性推送技术。浏览器也可以在超时关闭套接字后重新连接。
询问该模型,我将如何以不通过指数线程分支消耗大量内存的方式编写应用程序?每个线程会处理一个或多个连接吗?每个人将如何发现要传输的新数据?- 大概我需要线程之间的对话,而不是每个线程自己主动搜索数据?如果我编写了一个产生 x+1 个子线程的父线程,那么每个线程与客户端的比例是 1:1 还是 many:1?我会遇到死锁问题吗?每个附加连接处理程序的内存占用是多少?
有人对此有想法吗?我想知道这在理论上会是什么样子而不是在实践中。
iphone-sdk-3.0 - 使用 PHP 连接到 APNS 时出错
警告:在第 13 行的 /home/content/t/3/k/t3kmast3r/html/PushService.php 中为 foreach() 提供的参数无效
警告:stream_socket_client() [function.stream-socket-client]:无法连接到 /home/content/t/3/k/ 中的 ssl://gateway.sandbox.push.apple.com:2195(连接被拒绝)第 53 行的 t3kmast3r/html/PushService.php 连接失败 111 连接被拒绝 致命错误:调用第 98 行 /home/content/t/3/k/t3kmast3r/html/PushService.php 中的未定义函数 socket_close()
我有 godaddy.com 的托管服务。有人知道 godaddy.com 支持 APNS 吗?
javascript - 如何使用 PHP 和 Javascript 实现服务器推送/长轮询/彗星
如何使用 PHP 和 Javascript 实现彗星/服务器推送设计模式?基本上我想要的是这样的:
- 用户单击“提交”按钮
- Javascript 显示一条消息,例如“处理 0 / 100 个项目”
- 每当处理一个新项目时,php / 服务器会推送一个更新,并且 javascript 将消息更改为“正在处理 2/100 个项目、3/100 个项目,等等”。
我怎样才能做到这一点?请问有什么链接/信息吗?
php - 如何使用 flex 3 和 php 获得“长轮询”?
我正在为客户开发一个项目,他们的 cms 将是 flex 3 和 php。将有多个客户同时使用它,我试图让它在一个人进行更改时,其他人会看到它。
我的问题是:如果我使用 Flex 3 和 PHP,我该如何实现类似于“服务器推送”的功能。长轮询是一个可能/好的选择吗?还是有其他选择可以帮助我完成相同的任务?
任何帮助将不胜感激!