openfire如何查询用户是否注册和在线?

【openfire如何查询用户是否注册和在线?】步骤一:用户输入邮箱地址,客户端进行邮箱格式验证,并把邮箱发往服务器验证是否已注册 。通过查找smack的API文档,我没有发现有专门的方法用于用户名唯一性的验证,倒是在注册的时候,如果用户名已存在,服务器会返回一个“conflict”的异常,通过这个异常可以判断用户名的唯一性 。但向服务器提交注册请求得进行到第三步的时候才会进行,这时候用户已输入了邮箱验证码,昵称,密码等信息,如果这时候再告诉用户用户名已存在,那么用户之前的输入就全作废了,这样的用户体验无疑很不好,所以我们得在用户输入邮箱地址的时候即时验证用户名的唯一性,并把结果反馈给用户 。通过不断地查找资料,最终发现org.jivesoftware.smackx.search.UserSearchManager这个类可以提供用户名,昵称,邮箱等信息的查找 。但使用这个类有个前提:必须得通过用户验证 。也就是说得登录之后才能使用这个类,否则服务器会返回“not-anthorized”的异常 。由于我们是用于用户注册的过程中,不可能已经登录 。于是又通过不断地查找smackAPI文档,最终发现了org.jivesoftware.smack.XMPPConnection.loginAnonymously方法,看方法名我们可以知道该方法是用来进行匿名登录的,使用此方法的前提是服务器要开启对匿名登录的支持 。用loginAnonymously这个方法,然后通过使用UserSearchManager类确实能够查找服务器中的用户名,但是用邮箱作用户名,则会查找不到,这是因为在XMPP协议中,用户名都是采用


    以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

    「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: