Git Product home page Git Product logo

qt-server-sent-events-demo's Introduction

Qt-Server-Sent-Events-Demo

A Qt5 Server Sent Events (SSE) demo.

Build instructions

  • cmake CMakeLists.txt
  • make
  • ./qt-sse-demo <URL>

Demo

Setup SSE server

This repo includes a simple SSE server demo in the server directory. To run it, you need NodeJS and Yarn installed:

  • cd server
  • yarn install
  • yarn start

The demo server runs on port 3000 and publishes events on /events.

Demo time!

Start the Qt SSE demo with our SSE demo server as URL:

./qt-sse-demo http://localhost:3000/events

[dylan@desktop Qt-Server-Sent-Events-Demo]$ ./qt-sse-demo http://localhost:3000/events
Qt Server Sent Events demo, written by Dylan Van Assche.
Creating new Network::Manager
GET resource: QUrl("http://localhost:3000/events")
Received event from stream
"{\"timestamp\":\"Wed Jun 17 2020 19:09:17 GMT+0200 (Central European Summer Time)\",\"message\":\"Hello World!\"}"
-----------------------------------------------------
Received event from stream
"{\"timestamp\":\"Wed Jun 17 2020 19:09:21 GMT+0200 (Central European Summer Time)\",\"message\":\"Hello World!\"}"
-----------------------------------------------------
Received event from stream
"{\"timestamp\":\"Wed Jun 17 2020 19:09:26 GMT+0200 (Central European Summer Time)\",\"message\":\"Hello World!\"}"
-----------------------------------------------------

qt-server-sent-events-demo's People

Contributors

dylanvanassche avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

qt-server-sent-events-demo's Issues

Hello server

Hi Dylan, Could you please extend your nice demo with a server sending "Hello World" every 10 sec. for example?

Unable to get completion information

Received event from stream
"id:c22a4961-d047-4d6d-b5fe-1a99aa9bc6a4 data:2021-09-23 17:26:21 932 event:msg"

Received event from stream
"id:c0dd8d68-28e5-4fc1-90b0-10af0f992780 data:"

Received event from stream
"2021-09-23 17:26:22 38 event:msg"

Received event from stream
"id:d539a5f5-55e3-4928-83e6-84ff9ab60680 data:2021-09-23 17:26:22 142 event:msg"

Can't compile with qt 5.5.0

Hi. First of all, thank you for this repository.
For some reasons i should stick with Qt5.5.0 (Compiler: MSVC 2013)

I tried to compile your source code, but it failed due to this error arose in networkmanager.cpp:

error: C2039: 'FollowRedirectsAttribute' : is not a member of 'QNetworkRequest'

If i try to comment line 133 in networkmangaer.cpp:
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);

I'll get lots of errrors:

	C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release
	cl -c -nologo -Zc:wchar_t -FS -O2 -MD -Zc:strictStrings -GR -W3 -w34100 -w34189 -w44996 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_CORE_LIB -DNDEBUG -I..\QServerSentEvents -I. -I..\..\..\..\myqt\5.5.0\install\msvc2013\32bit\include -I..\..\..\..\myqt\5.5.0\install\msvc2013\32bit\include\QtCore -Irelease -I..\..\..\..\myqt\5.5.0\install\msvc2013\32bit\mkspecs\win32-msvc2013 -Forelease\ @C:\Users\s.mirzakhani\AppData\Local\Temp\networkmanager.obj.16096.0.jom
networkmanager.cpp
	link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE,5.01 "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\QServerSentEvents.exe @C:\Users\s.mirzakhani\AppData\Local\Temp\QServerSentEvents.exe.16096.468.jom
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkRequest::QNetworkRequest(class QUrl const &)" (__imp_??0QNetworkRequest@@QAE@ABVQUrl@@@Z) referenced in function "private: class QNetworkRequest __thiscall Network::Manager::prepareRequest(class QUrl const &)" (?prepareRequest@Manager@Network@@AAE?AVQNetworkRequest@@ABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkRequest::~QNetworkRequest(void)" (__imp_??1QNetworkRequest@@QAE@XZ) referenced in function "public: void __thiscall Network::Manager::getResource(class QUrl const &)" (?getResource@Manager@Network@@QAEXABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QNetworkRequest::setHeader(enum QNetworkRequest::KnownHeaders,class QVariant const &)" (__imp_?setHeader@QNetworkRequest@@QAEXW4KnownHeaders@1@ABVQVariant@@@Z) referenced in function "private: class QNetworkRequest __thiscall Network::Manager::prepareRequest(class QUrl const &)" (?prepareRequest@Manager@Network@@AAE?AVQNetworkRequest@@ABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QNetworkRequest::setRawHeader(class QByteArray const &,class QByteArray const &)" (__imp_?setRawHeader@QNetworkRequest@@QAEXABVQByteArray@@0@Z) referenced in function "private: class QNetworkRequest __thiscall Network::Manager::prepareRequest(class QUrl const &)" (?prepareRequest@Manager@Network@@AAE?AVQNetworkRequest@@ABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QNetworkRequest::setAttribute(enum QNetworkRequest::Attribute,class QVariant const &)" (__imp_?setAttribute@QNetworkRequest@@QAEXW4Attribute@1@ABVQVariant@@@Z) referenced in function "private: class QNetworkRequest __thiscall Network::Manager::prepareRequest(class QUrl const &)" (?prepareRequest@Manager@Network@@AAE?AVQNetworkRequest@@ABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkAccessManager::QNetworkAccessManager(class QObject *)" (__imp_??0QNetworkAccessManager@@QAE@PAVQObject@@@Z) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QNetworkAccessManager::~QNetworkAccessManager(void)" (__imp_??1QNetworkAccessManager@@UAE@XZ) referenced in function "public: virtual void * __thiscall QNetworkAccessManager::`scalar deleting destructor'(unsigned int)" (??_GQNetworkAccessManager@@UAEPAXI@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QNetworkReply * __thiscall QNetworkAccessManager::get(class QNetworkRequest const &)" (__imp_?get@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@@Z) referenced in function "public: void __thiscall Network::Manager::getResource(class QUrl const &)" (?getResource@Manager@Network@@QAEXABVQUrl@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QNetworkAccessManager::setConfiguration(class QNetworkConfiguration const &)" (__imp_?setConfiguration@QNetworkAccessManager@@QAEXABVQNetworkConfiguration@@@Z) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkConfiguration::~QNetworkConfiguration(void)" (__imp_??1QNetworkConfiguration@@QAE@XZ) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkConfigurationManager::QNetworkConfigurationManager(class QObject *)" (__imp_??0QNetworkConfigurationManager@@QAE@PAVQObject@@@Z) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QNetworkConfigurationManager::~QNetworkConfigurationManager(void)" (__imp_??1QNetworkConfigurationManager@@UAE@XZ) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QNetworkConfiguration __thiscall QNetworkConfigurationManager::defaultConfiguration(void)const " (__imp_?defaultConfiguration@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@XZ) referenced in function "private: __thiscall Network::Manager::Manager(class QObject *)" (??0Manager@Network@@AAE@PAVQObject@@@Z)
networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QUrl __thiscall QNetworkReply::url(void)const " (__imp_?url@QNetworkReply@@QBE?AVQUrl@@XZ) referenced in function "private: void __thiscall Network::Manager::streamFinished(class QNetworkReply *)" (?streamFinished@Manager@Network@@AAEXPAVQNetworkReply@@@Z)
networkmanager.obj : error LNK2001: unresolved external symbol "protected: virtual class QNetworkReply * __thiscall QNetworkAccessManager::createRequest(enum QNetworkAccessManager::Operation,class QNetworkRequest const &,class QIODevice *)" (?createRequest@QNetworkAccessManager@@MAEPAVQNetworkReply@@W4Operation@1@ABVQNetworkRequest@@PAVQIODevice@@@Z)
networkmanager.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall QNetworkAccessManager::metaObject(void)const " (?metaObject@QNetworkAccessManager@@UBEPBUQMetaObject@@XZ)
networkmanager.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall QNetworkAccessManager::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QNetworkAccessManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
networkmanager.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall QNetworkAccessManager::qt_metacast(char const *)" (?qt_metacast@QNetworkAccessManager@@UAEPAXPBD@Z)
moc_networkmanager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static struct QMetaObject const QNetworkReply::staticMetaObject" (__imp_?staticMetaObject@QNetworkReply@@2UQMetaObject@@B) referenced in function "int __cdecl qRegisterNormalizedMetaType<class QNetworkReply *>(class QByteArray const &,class QNetworkReply * *,enum QtPrivate::MetaTypeDefinedHelper<class QNetworkReply *,1>::DefinedType)" (??$qRegisterNormalizedMetaType@PAVQNetworkReply@@@@YAHABVQByteArray@@PAPAVQNetworkReply@@W4DefinedType@?$MetaTypeDefinedHelper@PAVQNetworkReply@@$00@QtPrivate@@@Z)
release\QServerSentEvents.exe : fatal error LNK1120: 19 unresolved externals

Edit: Also seems there is no QSslError in Qt 5.5.0. But i just want to have a compiled version of your repo.(It doesn't matter if it support SSL or not)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.