ºìÁªLinuxÃÅ»§
Linux°ïÖú

Voovan framework v1.0-alphaÊͳö

·¢²¼Ê±¼ä:2016-05-11 09:38:56À´Ô´:ºìÁª×÷Õß:baihuo
¾­¹ý³¤Ê±¼äµÄŬÁ¦£¬Voovan ¿ªÔ´ÏîÄ¿ÖÕÓÚ½Ó½ü1.0Ê׸ö°æ±¾µÄ·¢²¼£¬½ñÌì·Å³öµÄÊÇ v1.0-alpha¡£

ÔÚÕâ¶Îʱ¼äÄÚÏîÄ¿¾­ÀúÁË:ѹÁ¦²âÊÔ,ÐÔÄÜÓÅ»¯,ÒÔ¼°²¿·ÖÄ£¿éµÄÖØ¹¹.ͬʱҲΪ´ó¼Ò´øÀ´µÄ»ùÓÚ Voovan HttpServer µÄÐÔÄÜ¼à¿ØÄ£¿é(»ùÓÚĿǰÏîÄ¿µÄÐÔÄÜ·ÖÎö)ΪÔËÐÐÔÚ Voovan ·þÎñÉϵÄÓ¦Óõ÷ÓÅ×öÁËÒ»¸ö³õ²½µÄÆÌµæ.

±¾´Î alpha °æ±¾ÖØ´ó¸üÐÂ:

Aio/Nio Ò첽ͨÐÅ¿ò¼ÜÐÔÄܵÄÓÅ»¯.

HttpServer »ùÓÚ HTTP1.1 ¶Ô HTTPS µÄÖ§³Ö

JDBCOperate Àà¶Ô´æ´¢¹ý³ÌµÄÖ§³Ö¼°ÊÂÎïµÄµ÷ÓÅ

¶ÔÓÚ SQL ²Ù×÷ÖÐÎÞ¶ÔÓ¦Êý¾ÝÖ§³ÖµÄռλ²ÎÊý×Ô¶¯ÒƳý.±ÜÃâ¶à¸öÌõ¼þ×éºÏ²éѯÖеĿÕÌõ¼þµ¼ÖµÄÎÞ½á¹û¼¯

HttpServerµÄÁ´Ê½²Ù×÷Ö§³Ö.

HttpServerÐÔÄÜ¼à¿ØÄ£¿é[ISSUS]

ÒÔÏÂÊÇv1.0-alpha µÄ¸üÐÂÄÚÈÝ:
BUGÐÞ¸´:

ʹÓüàÊÓ¹ýÂËÆ÷µÄʱºò,ͳ¼ÆµÄ´¦Àíʱ¼äûÓаüº¬¹ýÂËÆ÷´¦ÀíµÄʱ¼ä,½«¼àÊÓ¹ýÂËÆ÷(HttpMonitorFilter)´Ó¹ýÂËÆ÷Á´µÄ×îºóÒ»¸öµ÷Õûµ½µÚÒ»¸ö

Http·þÎñµÄ¹ýÂËÆ÷¶ÔÏóÎÞ·¨Çø·ÖÊÇÇëÇó»¹ÊÇÏìÓ¦µÄµ÷ÓÃ,½«Ô­À´µÄ doFilter·½·¨É¾³ý,²¢Ôö¼Ó onRequest ºÍ onResponse ·½·¨,²ÎÊýÏàͬ.

HttpServer ¾²Ì¬Îļþ ETag ÔÚÎļþ·¾¶²»¸Ä±äʱ²»»á·¢Éú±ä»¯µÄ²»¹ý,µ¼ÖÂÎļþÒ»µ«±»¼ÓÔØ¾Í»áÒ»Ö±·µ»Ø304µÄÎÊÌâ

ÐÞ¸´ Connection reset by peer ´íÎóºó,µ¼ÖµÄËÀÑ­»·Ïß³ÌÎÞ·¨½áÊøµÄÎÊÌâ

¶à¸öfilterÖ´ÐÐ˳ÐòµÄÎÊÌâ

getObjectFromMap·½·¨¸´ÔÓ¶ÔÏóʱ¶Ô Map µÄ value Ϊ null µÄ bug ´¦Àí

getObjectFromMap·½·¨Öع¹²¢ÓÅ»¯,¶Ô»ù±¾ÀàÐÍ(int,float,long)µÄÖ§³Ö,ÒÔ¼° Date ·½·¨ bug ´¦Àí

Http ÏûÏ¢½Ø¶ÏÆ÷ µÄ boundary Åжϱ¨ÎĽáÊøÅжϵÄÎÊÌâ

µ±ÈÕÖ¾ÎļþĿ¼²»´æÔÚʱ×Ô¶¯´´½¨,ÇÒÈÕÖ¾Îļþ²»´æÔÚʱÌáʾ,²¢Ö»Êä³öÆäËûÈÕÖ¾

½â¾ö SSL Á¬½Ó handshake Ïß³Ìͬ²½µÄÎÊÌâ

½â¾ö·¢ËÍÊÇ»º³åÇøÂú£¬ºóÐø×Ö½ÚûÓмÌÐø·¢Ë굀 bug

Logger.javaÖÐsimple·½·¨´æÔڵݹéËÀÑ­»·µÄ·çÏÕ

KeepAlive ¶¨Ê±Æ÷¶ÔÏó²»Ïú»ÙµÄÎÊÌâ

WEBSOCKETÁ½´Î¹Ø±ÕʼþµÄ bug ´¦Àí

JSON ½âÎöµÄÊý¾ÝΪ long ʱûÓзµ»ØÕýÈ·µÄÊýÖµ

½â¾öJdbcOperateÒì³£ºóÁ¬½Ó³ØÐ¹Â¶µÄÎÊÌâ

¶ÔSQL ²Ù×÷¿Õ½á¹û¼¯(null)µÄÒì³£

JdbcOperator º¯Êý³åÍ»

µ±Í¬Ò»½ø³ÌÄÚ¶à¸ö socket ͬʱ¹¤×÷£¬»áÔÚ socket ¹Ø±Õʱ¹Ø±ÕÏ̳߳Ø,ÏÂÒ»¸ö socket ÔòÎÞ·¨·ÃÎʵ½Ï̳߳Ø

Socket SSLͨÐÅÔÚÎÕÊÖûÓÐÍê³Éʱ¿ªÊ¼½ÓÊÜÏûÏ¢µ¼ÖÂÒì³£

ÿ´Î·ÃÎʺó Session µÄ³¬Ê±Ê±¼äûÓÐË¢ÐÂ

JSONÊý×é½âÎö×îºóÒ»¸öÔªËØºÍ"]"Ö±½Ó»á±»Îó½âÎöΪһ¸öÔªËØ

»»ÐÐÏûÏ¢½Ø¶ÏʵÏÖÀà´¦ÀíÒ쳣ԭʼÅжÏÂß¼­\r »òÕß\n ÅжÏΪ»»ÐÐ. µ« window ÒÔ\r\n»»ÐУ¬µ¼Ö¶ϰüÏÂÒ»¸öÏûÏ¢µÄÆðʼ×Ö·û¶àÁËÒ»¸ö\n

HTTP ChunkedÏìÓ¦±¨ÎĽáÊøÅжÏÂß¼­ÎÊÌâ

POST µÄ multipart/form-dataÀàÐͲÎÊý½âÎöÒì³£

JSON ת¶ÔÏóʱÈç¹ûÓÐ×¢ÊÍ»áʧ°Ü.Èç¹ûJSONת¶ÔÏóʧ°Ü²»»áÔÙ·µ»Ø½âÎöºóµÄ Map,¶øÊÇ·µ»Ønull.

ÓÅ»¯ Http ÏûÏ¢·Ö¶ÎËã·¢

ÓÅ»¯ÄÚÈÝ:

ÔÚʹÓüàÊÓ¹ýÂËÆ÷µÄʱºò,ͳ¼ÆµÄ´¦Àíʱ¼äûÓаüº¬¹ýÂËÆ÷´¦ÀíµÄʱ¼ä,½«¼àÊÓ¹ýÂËÆ÷(HttpMonitorFilter)´Ó¹ýÂËÆ÷Á´µÄ×îºóÒ»¸öµ÷Õûµ½µÚÒ»¸ö

³éÀë³öÄÚ²¿Àà FilterConfig2.Ϊ HttpRequest Ôö¼Ó attribute

ÐÞ¸Ä HttpBizFilter µÄ·½·¨,Ôö¼ÓÁË·µ»ØÖµÍù¸´µÄ´«µÝ»úÖÆ,ÓÃÓÚ¿ØÖƹýÂËÈ¥µÄ״̬

Ϊ HttpServer ÌṩÁËÁ´Ê½µ÷Ó÷þÎñ

Ôö¼Ó Http ·þÎñ¼à¿ØÄ£¿é

TFile ÖÐÔö¼Ó¶ÁÈ¡Îļþ×îºó¼¸ÐеÄÐÐÊýpublic static byte[] loadFileLastLines(,)

ÔÚ Web.json ÖÐÔö¼ÓÊÇ·ñÊä³ö access.log ÈÕÖ¾ÎļþµÄ¿ØÖÆ

Body ¶ÔÏóÔö¼Ó³¤¶ÈÅжϺ¯Êýsize()

·´Éä·½·¨Ôö¼ÓºöÂÔÊôÐÔÃû´óСдµÄ findField ·½·¨

¼Ó queryObject ºÍ queryObjectList µÈ·½·¨,±íµÄÁÐÃû ºÍ ¶ÔÏóµÄÊôÐÔÃûµÄÄ£ºýÆ¥Åä

Ò첽ͨÐÅÀàʹÓ÷ÇÕ»ÄÚ´æ¹ÜÀí»º³åÇøÌá¸ßÐÔÄÜ

JdbcOperate Ìṩ´æ´¢¹ý³Ìµ÷Ó÷½·¨

ÔÚδ¶ÁÈ¡µ½Êý¾Ýʱ²»½øÐÐÏûÏ¢½Ø¶ÏµÄÅжÏ

Ôö¼Ó SSL Á¬½Ó ÎÞ¿Í»§¶ËÈÏ֤ģʽ

Ôö¼Ó TimeOutMessageSplitter£¬²¢ÇÒÔÚ Aio ºÍ NioÖÐʵÏÖÈç¹ûûÓÐÌí¼ÓMessageSplitter£¬ÔòʹÓÃTimeOutMessageSplitter×÷ΪĬÈÏ

Ôö¼Óµ¥ÈÕÖ¾Êä³öÀàÓÃÓÚ²¹³äÊä³öÌØ¶¨µÄÈÕÖ¾Îļþ SingleLogger

Ò첽ͨÐŰüµÄ IoSession ÀàµÄ send ·½·¨ÐÞ¸ÄΪ public,µ«Òª×¢Òâ¸Ã·½·¨²»»á³ö·¢ on Sent ʼþ

ΪHttpServer Ôö¼Ó·ÃÎÊÈÕÖ¾ access.log

¶ÔĬÈϵÄWEB ·þÎñµÄ¸ù·¾¶½øÐÐÓÅ»¯,¿ÉÒÔ×Ô¶¯Ê¶±ðÏà¶ÔºÍ¾ø¶Ô·¾¶

TFile Ôö¼ÓÎļþдÈ뺯Êý(²ÉÓÃÁ÷µÄÐÎʽ)

TFile Ôö¼ÓÈ¡Îļþ´óСµÄº¯Êý

TFile ¶ÁÈ¡ÎļþµÄʱºòûÓÐÓÃUTF-8תÂë,¶Á²»³ö´øÖÐÎÄ·¾¶µÄÎļþ

Logger.simpleÖ§³ÖÈÕÖ¾Ëõ½ø(/s,/t)

Logger Ôö¼ÓÈÕÖ¾Êä³ö¿ØÖÆ·½·¨setState()

Ϊ HttpClient ¶ÔÏóÔö¼Ó putHeader ·½·¨

HttpClientÔÚÁ¬Ðø²»¶ÏµÄ·¢ËÍÇëÇóʱCookie×Ô¶¯Áô´æ

½« HTTPClient Ð޸ijɿÉÒÔ²»¹Ø±ÕÁ¬½Ó³ÖÐø²»¶ÏµÄ·µËÍ HTTP ÇëÇó.

JdbcOperate ʹÓÃ":"À´±êʶ²ÎÊý»áºÍʱ¼ä¸ñʽ³åÍ»,Ð޸ijÉ"::"±êʶ²ÎÊý

ÈÕÖ¾¹¤¾ßÒì³£´¦Àí,±ÜÃâÒòÈÕÖ¾Òì³£µ¼Ö½ø³Ì½áÊø.

Ôö¼ÓHTTPClient ×Ô¶¨ Cookie µÄ¹¦ÄÜ

ÐÂÔöJSONDecode ÖÐ¶Ô Long µÄÖ§³Ö

Log ÈÕÖ¾¹¤¾ßÐèÒª×Ô¶¯·Ö¸îÉú³ÉÿÌìµÄÈÕÖ¾Îļþ

Ϊ HTTP ·þÎñÔö¼Ó¹ýÂËÆ÷Ö§³Ö

¶ÔÇëÇó²ÎÊý£¬ÔÚ¹¹Ôìʱ×Ô¶¯Ê¹ÓÃ×Ö·û¼¯²ÎÊý½øÐбàÂë

Part ¶ÔÏóÔö¼Ó¹¹Ôì,¿ÉÖ±½ÓÓù¹Ô캯Êý¹¹Ôì¼òµ¥Part£¬²¢Ìṩ×Ö·û¼¯Ö§³Ö

Http ÇëÇó¶ÔÏóÔö¼Ó¸ù¾ÝÇëÇóÀàÐÍ×Ô¶¯ÌîдContentType.

Ôö¼Ó Connection: keep-alive Í·£¬±ÜÃâ HTTP ±¨Îı»·þÎñ¶Ë¶Ï¿ªÁ¬½Óºó½ÓÊܱ¨ÎIJ»Íê³É

Ôö¼Ó°´»»Ðзµ»ØÏûÏ¢·Ö¸îÆ÷

Ôö¼Ó°´¶¨³¤·µ»ØÏûÏ¢·Ö¸îÆ÷

ÏÂÔØµØÖ·£ºhttps://git.oschina.net/helyho/Voovan/wikis/home

À´×Ô:¿ªÔ´ÖйúÉçÇø
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ