Skip to content
This repository was archived by the owner on Oct 8, 2024. It is now read-only.

Commit d61cac5

Browse files
committed
功能完善 & 错误修复
1 parent 5c712d6 commit d61cac5

File tree

10 files changed

+53
-30
lines changed

10 files changed

+53
-30
lines changed

sharedlibrary/JQNetwork/JQNetwork.pri

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ INCLUDEPATH *= \
1919
$$PWD/include/
2020

2121
# 定义JQNetwork的版本
22-
JQNETWORK_VERSIONSTRING = 0.6.4
22+
JQNETWORK_VERSIONSTRING = 0.6.5
2323

24-
# 判断Qt版本,小于等于5.6就报错
24+
# 判断Qt版本,小于5.7就报错
2525
lessThan( QT_MAJOR_VERSION, 5 ) | lessThan( QT_MINOR_VERSION, 7 ) {
2626
error( JQNetwork request minimum Qt version is 5.7.0 )
2727
}

sharedlibrary/JQNetwork/include/jqnetwork_client.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ struct JQNetworkClientSettings
2020
{
2121
QString dutyMark;
2222
int maximumAutoConnectToHostWaitTime = 10 * 1000;
23+
bool autoCreateConnect = true;
2324

2425
std::function< void( const JQNetworkConnectPointer &, const QString &hostName, const quint16 &port ) > connectToHostErrorCallback = nullptr;
2526
std::function< void( const JQNetworkConnectPointer &, const QString &hostName, const quint16 &port ) > connectToHostTimeoutCallback = nullptr;

sharedlibrary/JQNetwork/include/jqnetwork_clientforqml.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@
2121
// JQNetwork lib import
2222
#include <JQNetworkFoundation>
2323

24-
#ifdef QT_QML_LIB
25-
# define JQNETWORKCLIENTFORQML_REGISTERTYPE( engine ) \
24+
#ifndef QT_CORE_LIB
25+
# error("Please add qml in pro file")
26+
#endif
27+
28+
#define JQNETWORKCLIENTFORQML_REGISTERTYPE( engine ) \
2629
qmlRegisterType< JQNetworkClientForQml >( "JQNetworkClientForQml", 1, 0, "JQNetworkClientForQml" ); \
2730
engine.addImportPath( ":/JQNetwork/" );
28-
#endif
2931

3032
class JQNetworkClientForQml: public QObject
3133
{

sharedlibrary/JQNetwork/include/jqnetwork_connect.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ struct JQNetworkConnectSettings
2525
qint64 cutPackageSize = JQNETWORKPACKAGE_ADVISE_CUTPACKAGESIZE;
2626
qint64 packageCompressionMinimumBytes = 1024;
2727
int packageCompressionThresholdForConnectSucceedElapsed = 500;
28-
qint64 maximumSendForTotalByteCount = -1;
29-
qint64 maximumSendPackageByteCount = -1;
30-
int maximumSendSpeed = -1; // Byte/s
31-
qint64 maximumReceiveForTotalByteCount = -1;
32-
qint64 maximumReceivePackageByteCount = -1;
33-
int maximumReceiveSpeed = -1; // Byte/s
28+
qint64 maximumSendForTotalByteCount = -1; // reserve
29+
qint64 maximumSendPackageByteCount = -1; // reserve
30+
int maximumSendSpeed = -1; // Byte/s reserve
31+
qint64 maximumReceiveForTotalByteCount = -1; // reserve
32+
qint64 maximumReceivePackageByteCount = -1;// reserve
33+
int maximumReceiveSpeed = -1; // Byte/s reserve
3434
bool fileTransferEnabled = false;
3535

3636
qint32 randomFlagRangeStart = -1;

sharedlibrary/JQNetwork/include/jqnetwork_connectpool.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818

1919
struct JQNetworkConnectPoolSettings
2020
{
21-
bool autoReconnect = true;
22-
int reconnectIntervalTime = 15 * 1000;
23-
2421
std::function< void( const JQNetworkConnectPointer &, const JQNetworkConnectPoolPointer & ) > connectToHostErrorCallback = nullptr;
2522
std::function< void( const JQNetworkConnectPointer &, const JQNetworkConnectPoolPointer & ) > connectToHostTimeoutCallback = nullptr;
2623
std::function< void( const JQNetworkConnectPointer &, const JQNetworkConnectPoolPointer & ) > connectToHostSucceedCallback = nullptr;

sharedlibrary/JQNetwork/src/jqnetwork_client.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ bool JQNetworkClient::waitForCreateConnect(
262262

263263
mutex_.unlock();
264264

265-
const auto &&acquireSucceed = semaphore->tryAcquire(
265+
auto acquireSucceed = semaphore->tryAcquire(
266266
1,
267267
( maximumConnectToHostWaitTime == -1 ) ? ( connectSettings_->maximumConnectToHostWaitTime ) : ( maximumConnectToHostWaitTime )
268268
);
@@ -273,7 +273,13 @@ bool JQNetworkClient::waitForCreateConnect(
273273

274274
mutex_.unlock();
275275

276-
return acquireSucceed && semaphore->tryAcquire( 1 );
276+
if ( !acquireSucceed ) { return false; }
277+
278+
acquireSucceed = semaphore->tryAcquire( 1 );
279+
280+
// qDebug() << "-->" << acquireSucceed;
281+
282+
return acquireSucceed;
277283
}
278284

279285
qint32 JQNetworkClient::sendPayloadData(
@@ -562,6 +568,8 @@ JQNetworkConnectPointer JQNetworkClient::getConnect(const QString &hostName, con
562568
return connect;
563569
}
564570

571+
if ( !clientSettings_->autoCreateConnect ) { return { }; }
572+
565573
const auto &&autoConnectSucceed = this->waitForCreateConnect( hostName, port, clientSettings_->maximumAutoConnectToHostWaitTime );
566574

567575
if ( !autoConnectSucceed ) { return { }; }

sharedlibrary/JQNetwork/src/jqnetwork_connect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,8 @@ void JQNetworkConnect::onReadyToDelete()
840840
{
841841
for ( const auto &callback: onReceivedCallbacks_ )
842842
{
843+
if ( !callback.failCallback ) { continue; }
844+
843845
callback.failCallback( this );
844846
}
845847
}

sharedlibrary/JQNetwork/src/jqnetwork_connectpool.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ JQNetworkConnectPointer JQNetworkConnectPool::getConnectBySocketDescriptor(const
223223

224224
void JQNetworkConnectPool::onConnectToHostSucceed(const JQNetworkConnectPointer &connect)
225225
{
226-
// qDebug() << __func__ << connect.data();
226+
// qDebug() << "JQNetworkConnectPool::onConnectToHostSucceed:" << connect.data();
227227

228228
mutex_.lock();
229229

@@ -233,7 +233,7 @@ void JQNetworkConnectPool::onConnectToHostSucceed(const JQNetworkConnectPointer
233233
{
234234
mutex_.unlock();
235235

236-
qDebug() << __func__ << ": error: connect not contains" << connect.data();
236+
qDebug() << "JQNetworkConnectPool::onConnectToHostSucceed: error: connect not contains" << connect.data();
237237
return;
238238
}
239239

@@ -248,7 +248,7 @@ void JQNetworkConnectPool::onConnectToHostSucceed(const JQNetworkConnectPointer
248248

249249
void JQNetworkConnectPool::onReadyToDelete(const JQNetworkConnectPointer &connect)
250250
{
251-
// qDebug() << "onReadyToDelete:" << connect.data();
251+
// qDebug() << "JQNetworkConnectPool::onReadyToDelete:" << connect.data();
252252

253253
JQNETWORK_NULLPTR_CHECK( connectPoolSettings_->readyToDeleteCallback );
254254
connectPoolSettings_->readyToDeleteCallback( connect, this );
@@ -264,7 +264,7 @@ void JQNetworkConnectPool::onReadyToDelete(const JQNetworkConnectPointer &connec
264264
{
265265
mutex_.unlock();
266266

267-
qDebug() << __func__ << ": error: connect not contains" << connect.data();
267+
qDebug() << "JQNetworkConnectPool::onReadyToDelete: error: connect not contains" << connect.data();
268268
return;
269269
}
270270

tester/JQNetworkOverallTest/cpp/jqnetwork_overalltest.cpp

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -528,13 +528,19 @@ void JQNetworkOverallTest::jqNetworkClientTest()
528528
JQNetworkConnectPoolSettingsSharedPointer connectPoolSettings( new JQNetworkConnectPoolSettings );
529529
JQNetworkConnectSettingsSharedPointer connectSettings( new JQNetworkConnectSettings );
530530

531-
clientSettings->readyToDeleteCallback = [ &flag1, &count1 ](const auto &, const auto &, const auto &){ flag1 = true; ++count1; };
531+
clientSettings->readyToDeleteCallback = [ &flag1, &count1 ](const auto &, const auto &, const auto &)
532+
{
533+
flag1 = true; ++count1;
534+
};
532535

533536
{
534537
JQNetworkClient client( clientSettings, connectPoolSettings, connectSettings );
535538
client.begin();
536539

537540
QCOMPARE( client.sendPayloadData( "127.0.0.1", 23456, { } ), 0 );
541+
542+
QThread::sleep( 1 );
543+
538544
QCOMPARE( client.waitForCreateConnect( "127.0.0.1", 23456 ), false );
539545

540546
count1 = 0;
@@ -546,7 +552,7 @@ void JQNetworkOverallTest::jqNetworkClientTest()
546552

547553
QThread::msleep( 15 * 1000 );
548554

549-
QCOMPARE( count1, 500 );
555+
QCOMPARE( count1, 501 );
550556
}
551557

552558
connectSettings->maximumReceivePackageWaitTime = 800;
@@ -1411,14 +1417,14 @@ void JQNetworkOverallTest::fusionTest2()
14111417
{
14121418
for ( auto i = 0; i < 10; ++i )
14131419
{
1414-
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello" } } );
1415-
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello" } } );
1420+
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello-1" } } );
1421+
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello-2" } } );
14161422

14171423
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToOne", { { "clientId", i + 1 } } );
14181424
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToOne", { { "clientId", i + 1 } } );
14191425

1420-
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello" } } );
1421-
clients[ ( i + 5 )% 10 ]->waitForSendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello" } } );
1426+
clients[ i % 10 ]->sendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello-3" } } );
1427+
clients[ ( i + 5 )% 10 ]->waitForSendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello-4" } } );
14221428
}
14231429

14241430
semaphore.release( 1 );
@@ -1427,14 +1433,21 @@ void JQNetworkOverallTest::fusionTest2()
14271433

14281434
semaphore.acquire( 500 );
14291435

1430-
clients[ 0 ]->waitForSendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello" } } );
1436+
QThread::msleep( 1000 );
1437+
1438+
clients[ 0 ]->waitForSendVariantMapData( "127.0.0.1", 36412, "broadcastToAll", { { "message", "hello-end" } } );
14311439

14321440
QThread::msleep( 1000 );
14331441

14341442
for ( const auto &clientProcessor: clientProcessors )
14351443
{
14361444
QCOMPARE( clientProcessor->receivedMessageCount(), 2001 + 5000 + 5000 + 500 + 500 + 5000 + 5000 + 1 );
14371445

1438-
QCOMPARE( clientProcessor->lastReceived(), QVariantMap( { { "message", "hello" } } ) );
1446+
if ( clientProcessor->lastReceived() != QVariantMap( { { "message", "hello-end" } } ) )
1447+
{
1448+
qDebug() << clientProcessor->lastReceived();
1449+
QFAIL( "111" );
1450+
}
1451+
QCOMPARE( clientProcessor->lastReceived(), QVariantMap( { { "message", "hello-end" } } ) );
14391452
}
14401453
}

tester/JQNetworkOverallTest/cpp/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ int main(int argc, char *argv[])
1313
QCoreApplication app(argc, argv);
1414
JQNetwork::printVersionInformation();
1515

16-
JQNetworkOverallTest jqNetworkTest;
17-
1816
// for ( auto count = 100; count; --count )
1917
// {
2018
// if ( QTest::qExec( &jqNetworkTest, argc, argv ) )
@@ -24,5 +22,7 @@ int main(int argc, char *argv[])
2422
// }
2523
// return 0;
2624

25+
JQNetworkOverallTest jqNetworkTest;
26+
2727
return QTest::qExec( &jqNetworkTest, argc, argv );
2828
}

0 commit comments

Comments
 (0)