54 lines
982 B
C++
54 lines
982 B
C++
#include "chatreader.hpp"
|
|
|
|
ChatReader::ChatReader()
|
|
: QObject(nullptr), socket()
|
|
{
|
|
QObject::connect(&socket, SIGNAL(socketConnect),
|
|
this, SLOT(socketConnect));
|
|
QObject::connect(&socket, SIGNAL(socketDisconnect),
|
|
this, SLOT(socketDisconnect));
|
|
}
|
|
|
|
bool ChatReader::getConnected() const
|
|
{
|
|
return _connected;
|
|
}
|
|
|
|
void ChatReader::socketConnect()
|
|
{
|
|
_connected = true;
|
|
}
|
|
|
|
void ChatReader::socketDisconnect()
|
|
{
|
|
_connected = false;
|
|
}
|
|
|
|
void ChatReader::open()
|
|
{
|
|
socket.open(URL);
|
|
}
|
|
|
|
qint64 ChatReader::send(QString message)
|
|
{
|
|
return socket.sendTextMessage(message);
|
|
}
|
|
|
|
void ChatReader::messageReceived(QString message)
|
|
{
|
|
auto chat = ChatMessage::Parse(message);
|
|
if (chat->type() == PingView::Expected)
|
|
{
|
|
const PingView ping(chat);
|
|
send(ping.toPong());
|
|
}
|
|
emit chatMessageReceived(chat);
|
|
}
|
|
|
|
ChatReader::~ChatReader()
|
|
{
|
|
|
|
}
|
|
|
|
const QUrl ChatReader::URL = QUrl("wss://irc-ws.chat.twitch.tv:443");
|