Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Macos 如何使用notificationconf?_Macos_Cocoa_Push Notification_Jabberd2 - Fatal编程技术网

Macos 如何使用notificationconf?

Macos 如何使用notificationconf?,macos,cocoa,push-notification,jabberd2,Macos,Cocoa,Push Notification,Jabberd2,我已经阅读了有关创建推送节点和发布/订阅通知的教程。 我遇到的唯一问题是,notificationconf似乎无法创建该节点 我的第一个问题:nodename(notificationconf工具的参数)和notificationName(我在应用程序中使用的NSString)是相同的东西吗 第二: notificationconf createnode push.example.com BFMyTestPushhNotification beefon Enter password: // pa

我已经阅读了有关创建推送节点和发布/订阅通知的教程。 我遇到的唯一问题是,
notificationconf
似乎无法创建该节点

我的第一个问题:nodename(notificationconf工具的参数)和notificationName(我在应用程序中使用的NSString)是相同的东西吗

第二:

notificationconf createnode push.example.com BFMyTestPushhNotification beefon
Enter password: // password from Open Directory for user beefon - it is Admin of the 10.6 server
2010-01-24 13:24:58.916 notificationconf[15221:903] created XMPP session
2010-01-24 13:24:58.931 notificationconf[15221:903] Connecting to push.example.com:5222 with user com.apple.notificationuser@push.example.com/TestPubsub, security = 2 ...
2010-01-24 13:24:59.130 notificationconf[15221:903] sessionCallback (event 1)
2010-01-24 13:24:59.130 notificationconf[15221:903] Session stopped (event 1)
我做错了什么? 从应用程序发布通知并没有任何作用


谢谢你的帮助

在同一个节点上使用通知很容易,但在网络上使用通知更难。特别是,我不认为有太多人在使用它,因为谷歌搜索结果很少:)现在,关于你的问题:

对于1:是,您需要有匹配的
nodename
notificationName
。手册页上这样说(虽然不是非常清楚):

因此,首先必须创建节点,然后才能侦听给定名称的通知。否则,您不会收到通知


对于2:我在没有运行XMMP守护进程(即端口5222关闭)时收到此错误。那个港口对你开放吗?(查看
nmap-p5222 push.example.com的输出。

我一直在尝试将雪豹服务器的推送通知服务与基于XMPP发布-订阅的自定义应用程序一起使用。我努力创建一个节点,但最终找到了它

  • 追踪服务帐户的密码
    com.apple.notificationuser
    。例如,您可以在
    /private/etc/dovecot/notify/notify.plist
    中找到它

  • 使用JID
    com.apple连接推送通知服务器。notificationuser@your-聊天服务器hostname.com
    和该密码

  • 以常规方式创建节点。在XMPPFramework中,它是这样的:

    XMPPJID *serviceJID =
    [XMPPJID jidWithString:@"pubsub.your-chat-server-hostname.com"];
    XMPPPubSub *xmppPubSub = [[XMPPPubSub alloc] initWithServiceJID:serviceJID];
    [xmppPubSub createNode:@"pubsub.your-chat-server-hostname.com`
               withOptions:nil];
    
  • 服务器创建节点。它以iq响应,但不是规范要求的iq。如果节点已经存在,它会发送一个兼容错误

    <iq xmlns="jabber:client"
    to="com.apple.notificationuser@your-chat-server-hostname.com/..."
    from="pubsub.your-chat-server-hostname.com"
    id="...:create_node" type="result"/>
    
    
    
  • 使用同一用户连接以发布您的更新


  • 我从来没能让notificationconf工作。

    ?你确定这是Mac的问题吗?听起来你在问推送通知,这是iPhone的东西。当然是Mac的东西。:-)他链接到的文档也是Mac文档库的一部分。此外,“man notificationconf”提供了更多信息。以前从未使用过它,所以我不知道答案是什么。主机启动(0.0071s延迟)。\n端口状态服务\n 5222/tcp打开未知\n Nmap完成:1个IP地址(1个主机启动)在0.21秒内扫描\n这是Nmap的输出。仍然无法让通知正常工作。服务器日志怎么说?你也可以(用tcpdump)监听原始网络流量并检查发生了什么。老实说,谷歌搜索“notificationconf createnode”(带引号)只会在苹果论坛上显示你的问题,这真是太糟糕了。现在iChat服务日志显示:connect->Password verification failed->disconnect jid=unbound,封包:0。这很奇怪,因为以前的日志只是:connect->disconnect jid=unbound,数据包:0。没有密码错误。createnode命令中的用户名是什么?在setpass命令中呢?我想用户名必须是服务器管理员的用户名,对吗?我认为它必须是一个有效的XMMP用户,具有创建节点的权限。也许这是为了检查您的iChat服务器配置。不幸的是,很难进一步挖掘,因为1。医生太少了,2。它不在操作系统的开源部分,就像在没有苹果API的情况下自己使用XMPP的默认pubsub机制一样。谢谢你的信息!对尽管如此,我的猜测是,以这种方式创建的节点也可以与Apple API一起使用——而且它们的API看起来确实很容易使用。
    <iq xmlns="jabber:client"
    to="com.apple.notificationuser@your-chat-server-hostname.com/..."
    from="pubsub.your-chat-server-hostname.com"
    id="...:create_node" type="result"/>