📄 updates.txt
字号:
You can find information on updating the RTC SDK components in the "Readme.txt" file.
Version date: 19. Mar 2007.
---------------------------------------------------------
* RTC SDK 2.49 - GPL Open Source edition
---------------------------------------------------------
GPL package may *only* be used for Evaluation and/or writing NON-COMMERCIAL applications.
GPL package does NOT include all the files from the commercial package.
Here is a list of some files which are NOT included in the GPL Open Source edition,
but are included with full source code in the commercial RealThinClient SDK package:
* RealThinClient SDK DEMOS:
(all these Demos are available in the commercial version):
- Web Forum demo
- Web Package Manager demo
- Web Stress Client
- SBB File Client demo (SecureBlackBox)
- SBB File Server demo (SecureBlackBox)
- SBB Web Forum demo (SecureBlackBox)
- TLS Web Forum demo (StreamSec Tools)
- TLS Web Server & Messenger demo (StreamSec Tools)
- RTC Scripting Engine Demo
* RealThinClient SDK Wizards and components:
- RTC Scripting Engine
- RTC Functions Wizard
* Third-party plugins:
- StreamSec Tools plugin
- SecureBlackBox plugin
- NexusDB plugin
* Help files for Delphi 4-7, BDS 2005, BDS 2006 and BDS 2007.
---------------------------------------------------------
* RTC SDK 2.49
---------------------------------------------------------
1) Delphi 4, 5 an 6 compatibility update.
In RTC SDK 2.48 (WaitForCompletion update), I've used a new WM_INPUT constant, which
was introduced in Delphi 7. I've now replaced this with (WM_KEYFIRST-1), which is
known in all Delphi versions, but returns the same value. This fixes the compile
error you would get with Delphi 6 and older when trying to compile RTC SDK 2.48.
---------------------------------------------------------
* RTC SDK 2.48
---------------------------------------------------------
1) WaitForCompletion with UserInteraction=False was processing too many messages, which has caused problems
using ThinDAC in blocking mode. Now, WaitForCompletion with UserInteraction=False will only process low
system messages (up to WM_INPUT) and USER messages, which will avoid triggering scroll and other messages.
---------------------------------------------------------
* RTC SDK 2.47
---------------------------------------------------------
1) Fixed a Memory and a *Thread* leak.
This "memory+thread" leak will only happen in a Multi-Threaded Server where
the listener is often being started and stopped (which is never the case) or
in a client working with a single connection in Multi-Threaded mode and that
connection is often being opened and closed.
---------------------------------------------------------
* RTC SDK 2.46
---------------------------------------------------------
1) Update from version 2.44 and fixed in 2.45 worked for most cases, but not for all.
Instead of tying to identify where the call came from, I have now added a parameter
for calling remote functions from within other remote functions OnResult events.
This update makes it possible to call remote functions from within a Result received from
another remote function call, even if your application is working in single threaded mode.
2) Modified AppClient demo to use this new feature, so the multi-connection flood test can now
run in single-threaded and in multi-threaded mode (the "MultiThreaded" Checkbox is now used).
---------------------------------------------------------
* RTC SDK 2.45
---------------------------------------------------------
1) Critical fix for version 2.43 (memory consumption problem).
RTC Messenger Client in Version 2.43 and 2.44 stopped working.
This is now fixed in version 2.45
---------------------------------------------------------
* RTC SDK 2.44
---------------------------------------------------------
1) Fixed a conflict with connection Timeouts in a Multi-Treaded Server.
The problem was that one background thread would trigger a Timeout event for a connection
while another background thread was in the process of destroying the same connection object.
To avoid this possible conflict, Timeout events are being prepared as jobs, then posted to
the thread responsible for handling the connection object. In other words, if a Timeout should
be triggered, a "Disconnect job" will be posted to the connection object's thread, so the
"timeout thread" doesn't access the connection object directly. This way, the actual disconnect
will be handled by the same thread which is handling all other things related to this connection.
---------------------------------------------------------
* RTC SDK 2.43
---------------------------------------------------------
1) Fixed a memory consumption problem when using WinInet to recursively send requests.
This is usually never the case in applications controlled by humans, but if you need
to implement an endless request loop and want to base each next request on the data you
have received from the last response, and you have to use WinInet (useProxy or useSSL),
using recursive calls would be the easiest way to implement it, which is also how the
endless loop in the AppClient demo was implemented. So, this fix will keep your memory
requirements on a constant level, even when implementing endless loops using recursive calls.
---------------------------------------------------------
* RTC SDK 2.42
---------------------------------------------------------
1) Fixed a bug introduced in SDK 2.41, where the main thread window handle used for
processing all RTC messages in the main thread could have been created from a background thread,
which has resulted in Timer/Reconnect/PostInteractive messages not being fired.
NOTE: This bug was introduced with my "handle tweaking" in version 2.41
2) Fixed a problem closing the background message handler thread, which was also
causing 3 small memory leaks and a 10-second pause before application shutdown.
NOTE: This bug was introduced in version 2.31 (moving background thread to a separate unit)
---------------------------------------------------------
* RTC SDK 2.41
---------------------------------------------------------
1) Minor "Windows handle" tweaking
2) Added support for BDS 2006 to rtcDBTypes unit
---------------------------------------------------------
* RTC SDK 2.40
---------------------------------------------------------
1) Work-around for a bug in Flash 8 upload rountines,
which are sending invalid FORM POST data
2) Support for working with HTTPS (SSL) Servers using non-standard and/or invalid SSL vcertificates.
Default setting for "rtcHttpClient.UserLogin.CertType" is now "certAny",
which will ignore all Server-side certificate errors and accept the response.
If you do NOT want your RTC Client to work with servers using "wrong" certificates,
you need to set the "rtcHttpClient.UserLogin.CertType" to "certNone".
---------------------------------------------------------
* RTC SDK 2.38
---------------------------------------------------------
1) Added compiler directives with are required for compiling the RTC SDK to "rtcDefs.inc",
making it possible to use the RTC SDK in projects which require different compiler settings.
2) Included Demos and QuickStart folders, which were missing since RTC SDK 2.35 Beta
---------------------------------------------------------
* RTC SDK 2.37
---------------------------------------------------------
1) Fixed a bug which would cause an endless request loop from the client when
client wants to enforce encryption, but the Server doesn't support encryption.
---------------------------------------------------------
* RTC SDK 2.36
---------------------------------------------------------
1) A few bug fixes and more changes for the new RTC Scripting Engine.
---------------------------------------------------------
* RTC SDK 2.35 Beta
---------------------------------------------------------
1) Changes required for the new RTC Scripting Engine.
Please note that this is a BETA version!
---------------------------------------------------------
* RTC SDK 2.34
---------------------------------------------------------
1) BCB6 compatibility update
---------------------------------------------------------
* RTC SDK 2.33
---------------------------------------------------------
1) Added "FieldByName" function to TRtcDataSet class.
This function was added only to make field access similar to TDataSet.FieldByName() possible.
FieldByName will always return a TRtcValue object (never NIL), which you can use to read data
inside this specific field in this specific row. If nothing was assigned to that row and field,
a new NULL value will automatically be created and assigned on first access.
When using FieldByName, a container object will be created for each field and row,
which takes more memory and makes field access slower. Unless you absolutely
NEED to use FieldByName to access field data, it would be much better to use
asString[], asInteger[], asDateTime[] and other "as..." properties, which work
faster and require less memory, since the TRtcValue container is not needed.
---------------------------------------------------------
* RTC SDK 2.32
---------------------------------------------------------
1) rtcHttpServer can now process requests received with chunked transfer encoding.
Except for the missing "Request.ContentLength" value, your implementation should work the same
whether the data was received using the standard streaming method, or by using chunked transfers.
2) rtcHttpClient can now safely be used to send large files out by writing them out in smaller blocks
from the OnDataSent events. Because of the new WinInet implementation, content body doesn't have
to be buffered to memory before we start sending it to the Server.
The old implementation with "useProxy=True" has been using a buffer to place the whole content in
memory before it could be sent out. New implementation is using the "InternetWriteFile" procedure
to send the content body out as you write it, the same way it works with the WinSock API
(when "useProxy=False"), which eliminates the need to place the whole content in memory before sending.
3) Fixed a problem in rtcHttpClient's "WriteHeader" and "Write" methods which made it impossible to
start sending out a large request/response by using only WriteHeader or an empty Write in the OnBeginRequest
event (you had to start sending the file content from the OnBeginRequest event).
Now you can set up your request headers in the OnBeginRequest event and send out only the HTTP headers
by using the WriteHeader method (or a simple "Write" without parameters), then send the content body
by implementing the OnDataSent event to send the data out in chunks/blocks.
4) QuickStart/Delphi_ClientUpload example was updated to take advantage of (2) and (3), showing you how
to send out large files, without flooding your memory with the whole file content.
---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -