0

好的,我又来了另一个问题。

首先:是否有任何解决方案可以替代我们可以在共享主机上使用/安装的 Node.js?

第二:是否可以在服务器端运行一个简单的 jQuery 代码?假设我们正在使用此代码:

<script>
$( '#myButton' ).click(function() {
$( "#myDiv" ).effect( "puff", "slow" );
$( "#myDiv" ).toggle( "puff" );
});
</script>

我怎样才能运行这个代码'服务器端'所以一旦用户1点击#myButton,查看同一页面的用户2也会看到#myDiv实时应用到的粉扑效果?

我知道这可以通过 AJAX 以某种方式完成,但我尝试/找到的所有 AJAX 解决方案都是针对一个用户 (User1) 的,而其他用户将无法实时看到它。

任何帮助都会很棒。

4

4 回答 4

0

实时通信需要服务器和客户端之间的双向通信。由于 Web 客户端只能发送请求而不能接收,所以这并不简单。有许多技术可以实现这种效果(谷歌他们以获取更多信息):

  • 轮询(最简单的一种)
  • 长轮询
  • 网络套接字
  • 波什

您也可以使用其他一些双向通信协议(不是 HTTP),例如 XMPP。

我认为最简单的解决方案是使用Pusher。如果您期望超过 20 个连接,他们的服务不是免费的,但是在每种项目中进行双向通信都是小菜一碟。

于 2013-10-04T12:27:36.637 回答
0

用户 1 和用户 2 是两个不同的浏览器和会话。所以会话、cookie 等不会帮助你。我不知道你为什么要尝试这样的事情,但如果你坚持你可以使用数据库并在 user1 之后设置一个标志为真,并在标志为真时向其他用户显示......我看不到任何其他方式做你是试图轻松地做。

于 2013-10-04T12:13:04.367 回答
0

是的,您没听错,您需要为每个客户端使用 2 个 ajax 调用。

1.When user clicks some thing update the id  or some value in database using ajax.

2.Call one ajax call repeatedly in some time interval and get the saved value in database to clientside, check the value and show the animation accordingly.
于 2013-10-04T12:13:58.713 回答
0

如果你想要run你的代码,realtime那么你应该使用socket.io

Socket.IO旨在使每个浏览器和移动设备中的实时应用程序成为可能,从而模糊不同传输机制之间的差异。它在 JavaScript 中是 100% 无忧实时的。

于 2013-10-04T12:17:34.620 回答