Ruby on rails 如何在rails中获得类似Facebook的通知系统
嘿,如何在rails中创建像Facebook或diaspora这样的通知系统 我曾尝试制作活动提要,但那不是我想要的,我想要一个与此网站完全相同的功能 我有一个简单的应用程序,其中有两种类型的用户买家和卖家 每当买家对他们的产品发表评论时,我都想通知卖家。Facebook使用comet技术来做这件事 以下是一些有用的链接 下面是facebook的理论Ruby on rails 如何在rails中获得类似Facebook的通知系统,ruby-on-rails,facebook,ruby-on-rails-4,notifications,diaspora,Ruby On Rails,Facebook,Ruby On Rails 4,Notifications,Diaspora,嘿,如何在rails中创建像Facebook或diaspora这样的通知系统 我曾尝试制作活动提要,但那不是我想要的,我想要一个与此网站完全相同的功能 我有一个简单的应用程序,其中有两种类型的用户买家和卖家 每当买家对他们的产品发表评论时,我都想通知卖家。Facebook使用comet技术来做这件事 以下是一些有用的链接 下面是facebook的理论 Facebook的工作原理是对服务器进行任何更改的轮询 Facebook页面将向服务器发出ajax请求,ajax请求将有很多超时 但在服务
- Facebook的工作原理是对服务器进行任何更改的轮询
- Facebook页面将向服务器发出ajax请求,ajax请求将有很多超时
- 但在服务器端的API中,它将通过不断检查数据库中的活动日志表,不断轮询DB server是否有任何更改。如果发现更改,它将返回结果,直到它轮询DB
- 一旦Ajax请求完成,它将递归地重试
function doPoll() {
$.get("events.php", {}, function(result) {
$.each(result.events, function(event) { //iterate over the events
//do something with your event
});
doPoll();
//this effectively causes the poll to run again as
//soon as the response comes back
}, 'json');
}
$(document).ready(function() {
$.ajaxSetup({
timeout: 1000*60//set a global AJAX timeout of a minute
});
doPoll(); // do the first poll
});
以下是服务器端的代码片段:
while(!has_event_happened()) {
sleep(5);
}
echo json_encode(get_events());
你可以找到很多细节
实际上,您可以根据自己的需要采用这种方法Facebook使用comet技术来实现这一点
以下是一些有用的链接
下面是facebook的理论
- Facebook的工作原理是对服务器进行任何更改的轮询
- Facebook页面将向服务器发出ajax请求,ajax请求将有很多超时
- 但在服务器端的API中,它将通过不断检查数据库中的活动日志表,不断轮询DB server是否有任何更改。如果发现更改,它将返回结果,直到它轮询DB
- 一旦Ajax请求完成,它将递归地重试
function doPoll() {
$.get("events.php", {}, function(result) {
$.each(result.events, function(event) { //iterate over the events
//do something with your event
});
doPoll();
//this effectively causes the poll to run again as
//soon as the response comes back
}, 'json');
}
$(document).ready(function() {
$.ajaxSetup({
timeout: 1000*60//set a global AJAX timeout of a minute
});
doPoll(); // do the first poll
});
以下是服务器端的代码片段:
while(!has_event_happened()) {
sleep(5);
}
echo json_encode(get_events());
你可以找到很多细节
实际上,您可以根据自己的需要采用这种方法Facebook使用comet技术来实现这一点
以下是一些有用的链接
下面是facebook的理论
- Facebook的工作原理是对服务器进行任何更改的轮询
- Facebook页面将向服务器发出ajax请求,ajax请求将有很多超时
- 但在服务器端的API中,它将通过不断检查数据库中的活动日志表,不断轮询DB server是否有任何更改。如果发现更改,它将返回结果,直到它轮询DB
- 一旦Ajax请求完成,它将递归地重试
function doPoll() {
$.get("events.php", {}, function(result) {
$.each(result.events, function(event) { //iterate over the events
//do something with your event
});
doPoll();
//this effectively causes the poll to run again as
//soon as the response comes back
}, 'json');
}
$(document).ready(function() {
$.ajaxSetup({
timeout: 1000*60//set a global AJAX timeout of a minute
});
doPoll(); // do the first poll
});
以下是服务器端的代码片段:
while(!has_event_happened()) {
sleep(5);
}
echo json_encode(get_events());
你可以找到很多细节
实际上,您可以根据自己的需要采用这种方法Facebook使用comet技术来实现这一点
以下是一些有用的链接
下面是facebook的理论
- Facebook的工作原理是对服务器进行任何更改的轮询
- Facebook页面将向服务器发出ajax请求,ajax请求将有很多超时
- 但在服务器端的API中,它将通过不断检查数据库中的活动日志表,不断轮询DB server是否有任何更改。如果发现更改,它将返回结果,直到它轮询DB
- 一旦Ajax请求完成,它将递归地重试
function doPoll() {
$.get("events.php", {}, function(result) {
$.each(result.events, function(event) { //iterate over the events
//do something with your event
});
doPoll();
//this effectively causes the poll to run again as
//soon as the response comes back
}, 'json');
}
$(document).ready(function() {
$.ajaxSetup({
timeout: 1000*60//set a global AJAX timeout of a minute
});
doPoll(); // do the first poll
});
以下是服务器端的代码片段:
while(!has_event_happened()) {
sleep(5);
}
echo json_encode(get_events());
你可以找到很多细节
实际上,您可以根据需要采用这种方法这里介绍的是一种
服务器推送
实现。这意味着当服务器中发生某些通知/操作时,它应该将通知推送到rails应用程序。@manju的答案与@manju的不同之处在于,它提出了一种基于客户端的解决方案,浏览器将定期呼叫服务器以获取新的通知
有两种主要方法可以做到这一点
1-使用一些第三方SASS解决方案。(方法简单,但成本高;)
,允许您向客户端发送推送通知
是另一个提供相同功能的提供商
阅读他们的文档,通常每个文档都有可以轻松集成到rails应用程序的宝石
2-实现您自己的推送服务器
您可以使用rails实现自己的推送服务器,并集成到应用程序中
这是一个选择
但更令人兴奋的是,Rails5将配备行动电缆,试图解决同样的问题
还有一些文章展示了rails4应用程序的action cable(你不必等到rails5发布),但我还没有亲自使用过
HTH您现在看到的是一个
服务器推送
实现。这意味着当服务器中发生某些通知/操作时,它应该将通知推送到rails应用程序。@manju的答案与@manju的不同之处在于,它提出了一种基于客户端的解决方案,浏览器将定期呼叫服务器以获取新的通知
有两种主要方法可以做到这一点
1-使用一些第三方SASS解决方案。(方法简单,但成本高;)
,允许您向客户端发送推送通知
是另一个提供相同功能的提供商
阅读他们的文档,通常每个文档都有可以轻松集成到rails应用程序的宝石
2-实现您自己的推送服务器
您可以实现自己的推送服务器w