如何使用c ++

时间:2019-07-02 06:24:54

标签: c++ qt socket.io

我有一个在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();
  }
}

1 个答案:

答案 0 :(得分:0)

connect对应于流套接字(TCP),而消息符号对应于数据报套接字(UDP)。对于TCP,您应使用readAll():

Post::withoutTrashed()->get();