我有一个在C ++中使用socket.io的小项目,我需要使用节点js从我的socket.io服务器接收数据,我在Qt中使用c ++使用socket.io,我在连接中有一个正在运行的代码到socket.io服务器,但是我的qt socket.io接收器中没有数据接收。
我正在使用此代码来接收数据。
//。h
private:
void OnNewMessage(std::string const& name,message::ptr const& data,bool hasAck,message::list &ack_resp);
Ui::MainWindow *ui;
std::unique_ptr<client> _io;
//。cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
_io(new client())
{
ui->setupUi(this);
using std::placeholders::_1;
using std::placeholders::_2;
using std::placeholders::_3;
using std::placeholders::_4;
_io->connect("http://127.0.0.1:8080");
socket::ptr sock = _io->socket();
sock->on("mapping",std::bind(&MainWindow::OnNewMessage,this,_1,_2,_3,_4));
}
void MainWindow::OnNewMessage(const std::string &name, const message::ptr &data, bool hasAck, message::list &ack_resp)
{
if(data->get_flag() == message::flag_object)
{
std::string msg = data->get_map()["message"]->get_string();
}
}
答案 0 :(得分:0)
connect对应于流套接字(TCP),而消息符号对应于数据报套接字(UDP)。对于TCP,您应使用readAll():
Post::withoutTrashed()->get();