我正在使用 jivesoftware Smack SDk 进行实时聊天功能。 为了创建连接,我使用以下代码,
template<class T> class PixelArray {
public:
int width_, height_;
int size_;
T* data_;
PixelArray() {
data_ = NULL;
};
~PixelArray() {
if (data_ != NULL)
delete[] data_;
data_ = NULL;
};
PixelArray(const PixelArray& other)
{
if (data_)
delete[] data_; // ERROR BEING THROWN HERE
data_ = NULL:
data_ = new T[other.size_];
size_ = other.size_;
width_ = other.width_;
height_ = other.height_;
std::copy(other.data_, other.data_ + other.size_, data_);
}
};
它的工作非常好。 现在问题是,我希望获得特定用户的在线状态或获取所有在线用户的列表。 我从堆栈溢出尝试了很多解决方案,但没有什么对我有用。 我试过的解决方案之一是,
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setServiceName("world-pc");
config.setHost(serverAddress);
config.setPort(5222);
config.setDebuggerEnabled(true);
XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
XMPPTCPConnection.setUseStreamManagementDefault(true);
connection = new XMPPTCPConnection(config.build());
XMPPConnectionListener connectionListener = new XMPPConnectionListener();
connection.addConnectionListener(connectionListener);
connection.connect();
connection.login("username","password");
这会返回一个列表,但所有用户的状态为null。 请有人帮我准确解决。
谢谢
答案 0 :(得分:3)
您可以使用Presence.Type.subscribe
来了解(作为用户)其他用户的状态:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('another_user@example.com');
connection.sendPacket(subscribe);
&#34; another_user&#34;应该以同样的方式批准你的请求:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('another_user@example.com');
connection.sendPacket(subscribe);
答案 1 :(得分:2)
由TYPE
(例如:Presence.Type.available
或Presence.Type.unavailable
)和来自用户的自定义可空status
进行呈现(例如“Hello World!”或“Today I” “快乐”或“现在就工作”。)
要设置状态,只需在发送前设置:
Presence presence = new Presence(Presence.Type.available);
presence.setStatus("Online and ready to chat");
connection.sendStanza(presence); //or old one: connection.sendPacket(presence)