我正在使用Php和MySQL.
我刚刚注册了pubnub push API,并使用Pubnub提供的PHP Push API成功完成了我的第一个推送通知.我是这个实时技术的新手,所以我想出了一些让我很难理解的问题.我已经google了很多次搜遍了stackoverflow.我在其他地方没有得到任何相关的建议或问题,所以我在这里写下我的问题,寻求你的建议和专业知识帮助.
Pubnub说每个客户创建两个以上的频道并不是一件好事.因此,在我的应用程序中,我需要创建两个以上的频道来收听我网站上发生的任何通知,但我会像Pubnub建议的那样为每个登录用户提供两个频道.
仅供参考:PubNub中的此链接说明了如何创建LongChannel名称以避免Channel Snooping
我的问题如下:
A.每次登录网站时,我是否总是要创建一个新的私有动态频道名称.如果是这样,其他用户如何知道如何向我的私有频道发送通知.或者,我只需要在数据库表中只存储一个静态频道名称,以便其他经过身份验证的用户将查询该表并获取我的私有频道姓名给我发送通知.如果是这种情况,你不觉得黑客是否掌握了某些用户的私人频道名称,他们是否能够收听该频道?
B.我正在使用PHP和MySQL,所以我仍然无法想出办法或想出一个解决方案来向另一个用户的私人频道发送消息.
让我们举一个简单的朋友请求系统的例子.
- UserA向UserB发送好友请求.
- UserB正在监听他自己的动态专用通道名称DynamicPrivateChannelB
(UserA如何找到UserB的私有通道名称?我认为唯一的方法是UserB的私有通道应该存储在每个数据库表中登录用户查询.我在想正确的方法吗?)
<?php
//first way. How can i possibly achieve this.
$sqlquery = "sent friend request from userA to userB";
require('Pubnub.php');
$pubnub = new Pubnub( 'pubkey', 'subkey' );
$pubnub->publish( array(
'channel' => 'how do i find the private channel name for userB to sent this notification?',
'message' => array('friend_request' => 'A friend request') )
);
//2nd way ? Is this the …Run Code Online (Sandbox Code Playgroud) pubnub ×1