我是一名PHP开发人员,标题基本上都说明了一切.然而,我希望得到一些更深入的信息,因为我开始对我工作的项目流程应该如何变得困惑.
对于(网络)应用程序,我需要实现像Facebook这样的功能,通知用户有关回复/评论并立即显示这些内容.
我想我可以使用ajax请求进行长轮询,但这似乎不是一个很好的解决方案,因为通知永远不会是即时的,而且资源很重.
如果我理解正确的话,我应该使用某种形式的套接字,而Node.Js将是一个不错的选择.因此,基于最后的假设,我现在对工作流程感到困惑.
我想到了两种可能的解决方案:
1)在我看来,如果我使用Node.Js,我可以完全跳过使用PHP并将应用程序基于Node.js.
2)或者我可以使用PHP作为基础,只使用Node.js通知用户并立即显示消息,但使用PHP和Mysql保存数据.
这两种可能性使我感到困惑,我无法决定什么是"最好"和最干净的方式.
我在Node.js上没有太多经验,玩了一段时间.但是在Node.js中管理和保存数据似乎很难,所以这就是我提出选项2的原因.
我知道Facebook是基于PHP的,所以我假设他们通过PHP保存数据并通过Node通知/立即显示回复和评论.
有人可以帮我解决这个问题吗?
提前致谢!
编辑: 我刚刚注意到,Stackoverflow做了类似的事情.我在左上方收到通知,在我的问题下面有一个"问题新答案"的方框.我对所使用的技术非常感兴趣.
我们有Tinymce Filemanager和Imagemanager.
我需要将他们两个整合在一起.在Imagemaneger的网页上,它表示它与Filemanager兼容.
(http://www.tinymce.com/enterprise/mcimagemanager.php).
但是,我无法找到它的工作原理.我不希望Imagemanager和Filemanager分开.让他们两个似乎在一起工作是理想的.
有谁知道在哪里找到一个演示以及如何整合这个?
提前致谢,
-V
我也在开发者论坛上问过这个问题,但是由于我的时间不多了,我希望在stackoverflow上发布可能会更快.
目前我能够接收推送通知,我想发送一些额外的数据,在搜索后我得出结论,这应该是可能的.我们的想法是在触发推送通知时设置来自用户收件箱(在应用程序中)的消息,这样用户就会收到一条推送通知,上面写着"新消息",并且随之发送消息的是另一个密钥,即应该在调用Applications.Properties推送通知callback功能时保存.
但是,该callback功能永远不会被触发.通知发送,徽章设置为我的PHP脚本所做的消息.为了测试回调是否被触发我将徽章和消息更改为硬编码值(见下文),我主要从ios muncher获取此代码,但我认为该警告callback将显示给用户.
我注意到一个不同的事情,我只在用户不使用应用程序时收到推送通知,因此当它在后台运行时.当用户使用应用程序时,未显示推送通知,我认为这可能是因为未触发回调.
在此先感谢您的帮助.
下面是一些代码:
Titanium.Network.registerForPushNotifications({
types: [
Titanium.Network.NOTIFICATION_TYPE_BADGE,
Titanium.Network.NOTIFICATION_TYPE_ALERT,
Titanium.Network.NOTIFICATION_TYPE_SOUND
],
success:function(e){
var deviceToken = e.deviceToken;
Ti.API.info("Push notification device token is: "+deviceToken);
//alert('device token is' +e.deviceToken);
var request = Titanium.Network.createHTTPClient();
request.open("POST","http://*********/sendToken.php");
var params = {
"token": e.deviceToken,
"username": authProperties[0].username,
"userId": authProperties[0].userId
};
request.send(params);
Ti.API.info("Push notification types: "+Titanium.Network.remoteNotificationTypes);
Ti.API.info("Push notification enabled:"+Titanium.Network.remoteNotificationsEnabled);
},
error:function(e){
alert("Error during registration: "+e.error);
Ti.API.info("Error during registration: "+e.error);
},
callback:function(e)
{
// called when a push notification …Run Code Online (Sandbox Code Playgroud)