Thread: [Cppcms-users] Server Sent events and CppCMS
Brought to you by:
artyom-beilis
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 10:22:20
|
Hello. I have the following app https://github.com/paullik/webchat/blob/master/src/index.py it is a webchat that uses AJAX and server sent events (SSE). But I'd like (for exercise) to port it to C++ using CppCMS. I have some issues though: 1. How can I implement in CppCMS a function that acts like my sse_stream python function? Namely: this function has to return a response when something happens (a user says something on the chat) and then it has to continue working, so it should be a blocking function that patiently waits for users to submit messages via AJAX and when a message arrives it should send it as a response, then wait for another message and so on. 2. There (in my python app) I use redis to publish a message to all subscribers, because the application creates a thread for each connection, any of these threads can publish something (any user can send a message) and via redis I collect them and send them to everyone using sse_stream. The issue is that I'm unsure about how to replicate this system. I'd like to use only the RAM, so I'd like to get rid of redis. Will it work if I create a vector of messages (or a queue) where I'll store the messages and I'll pass this vector to the function at point 1 to sent the messages to the other users, then remove that message from the vector in order to be prepared for the next one? Please let me know what you think, I'll provide more details or I'll try to provide a better explanation of what I'm trying to do. PS: As you can see I'm a C++ beginner, please be kind... -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Artyom B. <art...@ya...> - 2012-08-09 10:29:12
|
> I have the following app > https://github.com/paullik/webchat/blob/master/src/index.py it is a webchat that > > uses AJAX and server sent events (SSE). > > But I'd like (for exercise) to port it to C++ using CppCMS. Are you familiar with this? http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming > I'd like to use only the RAM, so I'd like to get rid of redis. > Will it work if I create a vector of messages (or a queue) where I'll store > the > messages and I'll pass this vector to the function at point 1 to sent the > messages to the other users, then remove that message from the vector in order > to be prepared for the next one? I may suggest to keep last X messages in the memory and if user logins too late it would get only last messages and make the user request messages in queue from some counter, something like that. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 11:14:23
|
On 08/09/2012 01:29 PM, Artyom Beilis wrote: > Are you familiar with this? > > http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming No, I haven't followed that part of the tutorial, but I read it. But thinking of it ... Will it work if instead of the long pooling connection I'll use the EventStream in JS? And after broadcasting something to every waiter that initialized that connectionit I shouldn't call waiter->async_complete_response(); so I don't close the connection. Is that correct? -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Artyom B. <art...@ya...> - 2012-08-09 11:23:24
|
> On 08/09/2012 01:29 PM, Artyom Beilis wrote: >> Are you familiar with this? >> >> http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming > > No, I haven't followed that part of the tutorial, but I read it. > But thinking of it ... > > Will it work if instead of the long pooling connection I'll use the > EventStream in JS? I'm not familiar with EventStream of JS. But if it supports server side events... Than it does either long polling or some sort of streaming like hidden iframe or "never-ending" javascript etc. There are many COMET techniques. > > And after broadcasting something to every waiter that initialized that > connectionit I shouldn't call waiter->async_complete_response(); so I > don't close the connection. > > Is that correct? async_complete_response does what is defined - completes the response and closes the connection. The client is expected to reopen one - send a new XHR and wait again - also note that you can't get partial content using XHR API. If you want to not complete the response use async_flush_output with completion handler. > > -- Barbu Paul - Gheorghe > Common sense is not so common - Voltaire > Visit My GitHub profile to see my open-source projects - > https://github.com/paullik > Regards, Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 11:59:26
|
On 08/09/2012 02:23 PM, Artyom Beilis wrote: > > >> On 08/09/2012 01:29 PM, Artyom Beilis wrote: >>> Are you familiar with this? >>> >>> http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming >> >> No, I haven't followed that part of the tutorial, but I read it. >> But thinking of it ... >> >> Will it work if instead of the long pooling connection I'll use the >> EventStream in JS? > > I'm not familiar with EventStream of JS. But if it supports server > side events... Than it does either long polling or some sort of streaming > like hidden iframe or "never-ending" javascript etc. > > There are many COMET techniques. http://www.w3.org/TR/eventsource/ > > async_complete_response does what is defined - completes the response and > closes the connection. The client is expected to reopen one - send a new > XHR and wait again - also note that you can't get partial content > using XHR API. > > If you want to not complete the response use async_flush_output > with completion handler. > Hmm, when I'll have some free time I'll modify your coment example and try to make it work with SSE. Wish me luck :) Thank you for your time! -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: augustin <aug...@ov...> - 2012-08-09 12:14:53
|
On Thursday, August 09, 2012 07:59:16 PM Barbu Paul - Gheorghe wrote: > Wish me luck :) I wish you luck! :) Augustin, (who, unfortunately, is not knowledgeable enough to be able to help you). -- Friends: http://www.reuniting.info/ My projects: http://astralcity.org/ http://lesenjeux.fr/ http://linux.overshoot.tv/ http://overshoot.tv/ http://charityware.info/ http://masquilier.org/ http://openteacher.info/ http://minguo.info/ http://jacqueslemaire.fr/ http://www.wechange.org/ http://searching911.info/ . |
From: Artyom B. <art...@ya...> - 2012-08-09 12:58:04
|
----- Original Message ----- > From: Barbu Paul - Gheorghe <bar...@gm...> > To: Artyom Beilis <art...@ya...>; cpp...@li... > Cc: > Sent: Thursday, August 9, 2012 2:59 PM > Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > On 08/09/2012 02:23 PM, Artyom Beilis wrote: >> >> >>> On 08/09/2012 01:29 PM, Artyom Beilis wrote: >>>> Are you familiar with this? >>>> >>>> http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming >>> >>> No, I haven't followed that part of the tutorial, but I read it. >>> But thinking of it ... >>> >>> Will it work if instead of the long pooling connection I'll use the >>> EventStream in JS? >> >> I'm not familiar with EventStream of JS. But if it supports server >> side events... Than it does either long polling or some sort of streaming >> like hidden iframe or "never-ending" javascript etc. >> >> There are many COMET techniques. > > http://www.w3.org/TR/eventsource/ Ohhh!! So cool, good to know! ;-) > > Hmm, when I'll have some free time I'll modify your coment example and > try to > make it work with SSE. > > Wish me luck :) > It should be quite simple, just use async_flush and continue to wait. It is very nice and what is more important it does not require changes in web server api (fcgi/scgi) in order to implement it unlike WebSockets (that had zillion drafts for it) > Thank you for your time! > > -- > Barbu Paul - Gheorghe > Common sense is not so common - Voltaire > Visit My GitHub profile to see my open-source projects - > https://github.com/paullik Best, Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
From: Artyom B. <art...@ya...> - 2012-08-09 14:29:39
|
You know... The EventStream is so interesting and good concept so I'll write a class that allows to handle it easily. It will go to contrib section. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >________________________________ > From: Artyom Beilis <art...@ya...> >To: "cpp...@li..." <cpp...@li...> >Sent: Thursday, August 9, 2012 3:57 PM >Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > > > > >----- Original Message ----- >> From: Barbu Paul - Gheorghe <bar...@gm...> >> To: Artyom Beilis <art...@ya...>; cpp...@li... >> Cc: >> Sent: Thursday, August 9, 2012 2:59 PM >> Subject: Re: [Cppcms-users] Server Sent events and CppCMS >> >> On 08/09/2012 02:23 PM, Artyom Beilis wrote: >>> >>> >>>> On 08/09/2012 01:29 PM, Artyom Beilis wrote: >>>>> Are you familiar with this? >>>>> >>>>> http://cppcms.com/wikipp/en/page/cppcms_1x#Comet.Programming >>>> >>>> No, I haven't followed that part of the tutorial, but I read it. >>>> But thinking of it ... >>>> >>>> Will it work if instead of the long pooling connection I'll use the >>>> EventStream in JS? >>> >>> I'm not familiar with EventStream of JS. But if it supports server >>> side events... Than it does either long polling or some sort of streaming >>> like hidden iframe or "never-ending" javascript etc. >>> >>> There are many COMET techniques. >> >> http://www.w3.org/TR/eventsource/ > >Ohhh!! > >So cool, good to know! ;-) > > >> >> Hmm, when I'll have some free time I'll modify your coment example and >> try to >> make it work with SSE. >> >> Wish me luck :) >> > >It should be quite simple, just use async_flush and continue to wait. > >It is very nice and what is more important it does not require >changes in web server api (fcgi/scgi) in order to implement it >unlike WebSockets (that had zillion drafts for it) > > >> Thank you for your time! >> >> -- >> Barbu Paul - Gheorghe >> Common sense is not so common - Voltaire >> Visit My GitHub profile to see my open-source projects - >> https://github.com/paullik > >Best, > > > > Artyom Beilis >-------------- >CppCMS - C++ Web Framework: http://cppcms.com/ >CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ > > >------------------------------------------------------------------------------ >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 14:36:57
|
On 08/09/2012 05:29 PM, Artyom Beilis wrote: > You know... > > The EventStream is so interesting and good concept so I'll write a class that allows > to handle it easily. It will go to contrib section. I had no idea you'll like it so much! I'm glad you enjoy it. -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Artyom B. <art...@ya...> - 2012-08-09 14:51:19
|
I'm really glad that you brought it up because: 1. It is very easy to implement 2. It is supported by most (but IE) browsers 3. It can be easily substituted with long polling if the browser does not support EventSource (like IE) with minimal changes. 4. It does not require changes in HTTP protocol or underlying APIs like FastCGI/SCGI to implement server side events 5. It already defines queuing that is most common case of COMET. 6. In terms of performance in event dispatching it is as fast as WebSockets 7. The only drawback in comparison with WebSockets is that client can't do very fast server notification - but in general client does not have to fire too many events. 8. It does not seems to have two hundred of incompatible versions implemented on different levels by different browsers (such that some of them are not PROXY compatible) as web socket. Bottom line - it seems like a sane and modern approach to modern Comet (unlike WebSockets that you even can't implement over FastCGI) How could I miss such a cook HTML5 feature! Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >________________________________ > From: Barbu Paul - Gheorghe <bar...@gm...> >To: Artyom Beilis <art...@ya...>; cpp...@li... >Sent: Thursday, August 9, 2012 5:36 PM >Subject: Re: [Cppcms-users] Server Sent events and CppCMS > >On 08/09/2012 05:29 PM, Artyom Beilis wrote: >> You know... >> >> The EventStream is so interesting and good concept so I'll write a class that allows >> to handle it easily. It will go to contrib section. > >I had no idea you'll like it so much! >I'm glad you enjoy it. > >-- >Barbu Paul - Gheorghe >Common sense is not so common - Voltaire >Visit My GitHub profile to see my open-source projects - https://github.com/paullik > >------------------------------------------------------------------------------ >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 17:49:35
|
On 08/09/2012 05:51 PM, Artyom Beilis wrote: > How could I miss such a cook HTML5 feature! If you need a hand implementing that class just let me know, maybe I can help. -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Barbu P. - G. <bar...@gm...> - 2012-08-09 20:44:33
|
Hi again. So I managed to implement a chat using SSE and CppCMS, you can find it here: https://gist.github.com/3307849 (the Makefile and config.js are the same ones as in the "Implementing Chat" tutorial) It's just a proof of concept, it has issues: The biggest one is that after I send some messages and wait for about 30 seconds the following error appears: http://i.imgur.com/jtQUZ.png If I refresh the page everything seems fine again, then if I wait 30 seconds with no activity the error appears. I think this is somehow related to chat::get(), but I'm not really sure. What response is generated if chat::get() sends no explicit response? The second issue is the TODO in chat.cpp. -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Artyom B. <art...@ya...> - 2012-08-10 15:49:01
|
I had changed your example a little: 1. Remove context from the list such that it would not write some more data until completion handler returns. 2. You use incorrectly completion handler - you need to receive the status in handler. 3. Reduced reconnect option so the client would reconnect immediatly Also it would be better to use Last-Event-ID header and setup ids so the client that is disconnected can reconnect and restart from correct point. Small notes about streaming and flushing: - In CppCMS internal server works 100%, - In Lighttpd works 100% - In Apache - it is required to add -flush option - In nginx: -- scgi it is required to add scgi_buffer off; option -- fastcgi ... It is not possible to disable buffering - at least I had not found one Once agains... STUPID nginx Best, Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ ----- Original Message ----- > From: Barbu Paul - Gheorghe <bar...@gm...> > To: cpp...@li... > Cc: > Sent: Thursday, August 9, 2012 11:44 PM > Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > Hi again. > > So I managed to implement a chat using SSE and CppCMS, you can find it here: > > https://gist.github.com/3307849 > > (the Makefile and config.js are the same ones as in the "Implementing > Chat" > tutorial) > > It's just a proof of concept, it has issues: > > The biggest one is that after I send some messages and wait for about 30 seconds > > the following error appears: > http://i.imgur.com/jtQUZ.png > > If I refresh the page everything seems fine again, then if I wait 30 seconds > with no activity the error appears. I think this is somehow related to > chat::get(), but I'm not really sure. > > What response is generated if chat::get() sends no explicit response? > > > The second issue is the TODO in chat.cpp. > > -- > Barbu Paul - Gheorghe > Common sense is not so common - Voltaire > Visit My GitHub profile to see my open-source projects - > https://github.com/paullik > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |
From: Barbu P. - G. <bar...@gm...> - 2012-08-10 18:40:34
|
On 08/10/2012 06:48 PM, Artyom Beilis wrote: > I had changed your example a little: > > 1. Remove context from the list such that it would not write some more data > until completion handler returns. > 2. You use incorrectly completion handler - you need to receive the status > in handler. > 3. Reduced reconnect option so the client would reconnect immediatly Where can I see the changed code? > Also it would be better to use Last-Event-ID header and setup ids so the > client that is disconnected can reconnect and restart from correct point. Yeah this is more of a feature, what I did was a proof of concept for myself to see if I'm able to implement it... -- Barbu Paul - Gheorghe Common sense is not so common - Voltaire Visit My GitHub profile to see my open-source projects - https://github.com/paullik |
From: Artyom B. <art...@ya...> - 2012-08-10 19:37:49
Attachments:
source.cpp
|
Ooops, forget to attach Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ ----- Original Message ----- > From: Barbu Paul - Gheorghe <bar...@gm...> > To: Artyom Beilis <art...@ya...>; cpp...@li... > Cc: > Sent: Friday, August 10, 2012 9:40 PM > Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > On 08/10/2012 06:48 PM, Artyom Beilis wrote: >> I had changed your example a little: >> >> 1. Remove context from the list such that it would not write some more data >> until completion handler returns. >> 2. You use incorrectly completion handler - you need to receive the status >> in handler. >> 3. Reduced reconnect option so the client would reconnect immediatly > > Where can I see the changed code? > >> Also it would be better to use Last-Event-ID header and setup ids so the >> client that is disconnected can reconnect and restart from correct point. > > Yeah this is more of a feature, what I did was a proof of concept for myself to > see if I'm able to implement it... > > -- > Barbu Paul - Gheorghe > Common sense is not so common - Voltaire > Visit My GitHub profile to see my open-source projects - > https://github.com/paullik > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |
From: william l. <we...@gm...> - 2012-08-11 00:48:07
|
Hi Artyom, will this SSE feature be part of CppCMS, same as JsonRPC? thanks, William L. On Sat, Aug 11, 2012 at 3:37 AM, Artyom Beilis <art...@ya...> wrote: > Ooops, > > forget to attach > > > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.com/ > CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ > > > > ----- Original Message ----- > > From: Barbu Paul - Gheorghe <bar...@gm...> > > To: Artyom Beilis <art...@ya...>; > cpp...@li... > > Cc: > > Sent: Friday, August 10, 2012 9:40 PM > > Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > > > On 08/10/2012 06:48 PM, Artyom Beilis wrote: > >> I had changed your example a little: > >> > >> 1. Remove context from the list such that it would not write some more > data > >> until completion handler returns. > >> 2. You use incorrectly completion handler - you need to receive the > status > >> in handler. > >> 3. Reduced reconnect option so the client would reconnect immediatly > > > > Where can I see the changed code? > > > >> Also it would be better to use Last-Event-ID header and setup ids so > the > >> client that is disconnected can reconnect and restart from correct > point. > > > > Yeah this is more of a feature, what I did was a proof of concept for > myself to > > see if I'm able to implement it... > > > > -- > > Barbu Paul - Gheorghe > > Common sense is not so common - Voltaire > > Visit My GitHub profile to see my open-source projects - > > https://github.com/paullik > > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Cppcms-users mailing list > > Cpp...@li... > > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > |
From: Artyom B. <art...@ya...> - 2012-08-11 12:21:22
|
Probably, or I'll put it in the contrib section - of classes that are add-ons to CppCMS Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >________________________________ > From: william lee <we...@gm...> >To: Artyom Beilis <art...@ya...>; cpp...@li... >Sent: Saturday, August 11, 2012 3:47 AM >Subject: Re: [Cppcms-users] Server Sent events and CppCMS > > >Hi Artyom, >will this SSE feature be part of CppCMS, same as JsonRPC? > > >thanks, >William L. > > >On Sat, Aug 11, 2012 at 3:37 AM, Artyom Beilis <art...@ya...> wrote: > >Ooops, >> >>forget to attach >> >> >> >> >>Artyom Beilis >>-------------- >>CppCMS - C++ Web Framework: http://cppcms.com/ >>CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >> >> >> >>----- Original Message ----- >>> From: Barbu Paul - Gheorghe <bar...@gm...> >> >>> To: Artyom Beilis <art...@ya...>; cpp...@li... >>> Cc: >> >>> Sent: Friday, August 10, 2012 9:40 PM >>> Subject: Re: [Cppcms-users] Server Sent events and CppCMS >>> >> >>> On 08/10/2012 06:48 PM, Artyom Beilis wrote: >>>> I had changed your example a little: >>>> >>>> 1. Remove context from the list such that it would not write some more data >>>> until completion handler returns. >>>> 2. You use incorrectly completion handler - you need to receive the status >>>> in handler. >>>> 3. Reduced reconnect option so the client would reconnect immediatly >>> >>> Where can I see the changed code? >>> >>>> Also it would be better to use Last-Event-ID header and setup ids so the >>>> client that is disconnected can reconnect and restart from correct point. >>> >>> Yeah this is more of a feature, what I did was a proof of concept for myself to >>> see if I'm able to implement it... >>> >>> -- >>> Barbu Paul - Gheorghe >>> Common sense is not so common - Voltaire >>> Visit My GitHub profile to see my open-source projects - >>> https://github.com/paullik >>> >>> ------------------------------------------------------------------------------ >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. Discussions >>> will include endpoint security, mobile security and the latest in malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> Cppcms-users mailing list >>> Cpp...@li... >>> https://lists.sourceforge.net/lists/listinfo/cppcms-users >>> >>------------------------------------------------------------------------------ >>Live Security Virtual Conference >>Exclusive live event will cover all the ways today's security and >>threat landscape has changed and how IT managers can respond. Discussions >>will include endpoint security, mobile security and the latest in malware >>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>_______________________________________________ >>Cppcms-users mailing list >>Cpp...@li... >>https://lists.sourceforge.net/lists/listinfo/cppcms-users >> >> > >------------------------------------------------------------------------------ >Live Security Virtual Conference >Exclusive live event will cover all the ways today's security and >threat landscape has changed and how IT managers can respond. Discussions >will include endpoint security, mobile security and the latest in malware >threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |