我经营一个游戏网站,所以我有很多用户登录,他们可以每两分钟做一次.
我有一个CAPTCHA系统,有些东西它总是要求代码,而对于其他东西,它会每10分钟询问一次.
我让一些玩家在Opera上使用自动提交功能,而我的CAPTCHA系统确实阻止了他们.
我的问题是,如何最小化我要求代码的次数,但仍然阻止人们使用此自动提交?
我正在使用Smack和Openfire服务器作为聊天客户端,所有工作都很好,比如聊天,发送新用户的邀请,获取可用用户列表等等.我不知道如果连接是什么怎么办在粘性服务中我添加了一个连接监听器连接和连接断开连接,让我们说"Internet连接"
我正在使用以下代码作为connectionlistener.
connection.addConnectionListener(new ConnectionListener() {
@Override
public void reconnectionSuccessful() {
Log.i("","Successfully reconnected to the XMPP server.");
}
@Override
public void reconnectionFailed(Exception arg0) {
Log.i("","Failed to reconnect to the XMPP server.");
}
@Override
public void reconnectingIn(int seconds) {
Log.i("","Reconnecting in " + seconds + " seconds.");
}
@Override
public void connectionClosedOnError(Exception arg0) {
Log.i("","Connection to XMPP server was lost.");
Log.v("ONMESSAGE", "Error was " + arg0.toString() + "and Now connecting");
}
@Override
public void connectionClosed() {
Log.i("","XMPP connection was closed.");
}
}); …Run Code Online (Sandbox Code Playgroud) 我有兴趣了解有关Microsoft Office Communicator IM客户端的更多信息,以及它如何确定您的存在(即,如果您在计算机或远离计算机).任何人都可以指向我解释这个或API细节的教程吗?
我想将MS Office通信器状态指示器添加到我的Java应用程序(jsp)中.
我有一个Android客户端与ejabberd XMPP服务器协同工作.
观察:
场景1:当我向右滑动应用程序(终止应用程序)时,用户立即在服务器上脱机.它的状态在那一瞬间变为离线状态.
场景2:然而,当我简单地关闭我的Android Jabber客户端的Wi-Fi连接(数据)时,用户在服务器上标记为脱机时会有几分钟的明显滞后.
我无法弄清楚这两个过程的根本区别.
在场景2中可以做些什么来使其立即脱机?
默认情况下,XMPP存在发布给订阅该人的所有人.是否有可能发送类似iq调用的内容来获取我名单中不存在的id的状态标签?
你如何改变你的存在以显示dnd/away等?
XMPPPresence *presence = [XMPPPresence presenceWithType:status];
[[[self appDelegate] xmppStream] sendElement:presence];
Run Code Online (Sandbox Code Playgroud)
status是NSString我设置为在线/不可用/离开/忙/不可见的.
它仅在我上线和/或不可用时才有效.
以下是我在发送状态后的样子xmppStream:
<presence type="away"><x xmlns="vcard-temp:x:update"><photo/></x></presence>
Run Code Online (Sandbox Code Playgroud) 理想情况下,我希望找到简单,轻量级的代码,允许连接到我的网站的所有Web客户端保持当前在线的其他人的实时状态.
我知道ejabberd这样做,但它也做了很多其他的事情,我更喜欢一个小的代码占用空间,所以我可以自定义和理解它的性能特征.
我喜欢node.js的非阻塞方面,并且想知道是否有一个开源项目可以完成所有这些逻辑.
我还想看到一个在客户端维护这个模型的JavaScript实现.
我有一个ejabberd服务器,想为它写一个网络聊天客户端.我看过像Candy这样的东西,但是对于我想要做的事情,它们有点过头了.我只想要一些基本功能,如即时通讯,群聊和在线状态.
我使用strophejs-1.0.2的basic.html和basic.js示例文件作为我的基础.我已设法连接到我的jabber服务器,加入会议,"尝试发送消息",离开会议,并向我发送即时消息.大多数都是有效的.
我遇到的问题是当用户登录并加入会议时,它会尝试将消息发布到该组但是失败.
<message xmlns="jabber:client" from="test@conference.jabber.example.com" to="user@jabber.example.com/27311205821380711229538600" type="error">
<body>test2</body>
<error code="406" type="modify">
<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></not-acceptable>
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">It is not allowed to send private messages to the conference</text>
</error>
</message>
Run Code Online (Sandbox Code Playgroud)
如果我使用Pidgin以自己的身份登录会议,我可以在会议中看到用户.它旁边有一个图标,上面有一个圆点和一些圆圈.如果我右键单击用户,则表示用户状态为"脱机".这很奇怪,因为用户在线.如果我查看ejabberd的管理控制台,我看到用户在线.我尝试在用户加入会议之前手动设置这样的状态:
connection.send($pres({type: "Available"}));
Run Code Online (Sandbox Code Playgroud)
结果如下:
<presence xmlns="jabber:client" from="user@jabber.example.com/27311205821380711229538600" to="user@jabber.example.com/27311205821380711229538600" type="Available"></presence>
Run Code Online (Sandbox Code Playgroud)
用户仍处于离线状态.
当它在线时它发送给我的即时消息在Pidgin中是红色文本.普通消息看起来是蓝色 我认为这是因为它认为用户处于离线状态.
我有点卡住了.我想知道是否有人可以帮助我或指出我正确的方向?我首先想弄清楚为什么这个用户看起来像是脱机而且似乎并没有修复它.
我一直在查看有关如何查询名册的文档.我也没有取得多大成功.我正在寻找一个非常基本的示例来显示哪些用户在线以及他们的状态,如果有更改,则回调更新.
有谁可以帮助我吗?
xmpp ×4
ejabberd ×3
android ×2
captcha ×1
client ×1
erlang ×1
ios ×1
java ×1
javascript ×1
node.js ×1
nonblocking ×1
objective-c ×1
php ×1
smack ×1
strophe ×1