今天要说的是关于文件上传这个普通的不能再普通的话题,为什么会有这东西。 因为“已故项目”的一个普遍存在的需求:大文件上传。 由于“已故项目”是作为一个IaaS和PaaS的综合平台,可能会涉及到如各种应用程序,以及系统镜像这种超大文件的上传。 所以需要解决一下在浏览器端大文件上传的问题,于是有了今天的这个主题,虽然项目不在了。但是作为学习和巩固还是很有必要记录一下的。
Java中使用Socket.io
今天有一个小任务,主要是解决将来可能遇到的Web前端与服务器端实时通讯的一个小需求。其实按照我个人的理解直接在前端轮循基本上也能达到相同的效果,但是由于某领导认为这样实现不够优雅,So就又倒腾一下Websocket,不过是在Java下基于Socket.io实现的。
之前在Python下也做过一个基于WebSocket的聊天程序,不过是使用原生html的websocket api和tornado实现的。 在接触Node以后了解了Socket.io这个牛逼哄哄的组件,Socket.io对web端而言主要使用Html5 WebSocket和Flask分别适配,达到可以在Chrome这类Morden浏览器也可以在IE这货上正常使用。不过Java党就没有Node那么幸运了至少之前都没听说什么比较出名的Socket.io的Java服务器端实现。不过机缘巧合之前学习Netty的时候也看过一些实现Websocket的例子,顺着这条线在万能的Google和程序员的好朋友Stackflow上找到了一个答案netty-socketio, 基于Netty的Socket.io的服务器端实现。
Java网络编程框架Netty
有人想做一个游戏服务器,所以google了一把大概了解了java体系中主要的两个可以作为游戏服务器的框架mina和netty. 参考了知乎上的上的一些观点,毅然决然的选择了netty. 至于原因引用一段netty上的原话“The answer is the philosophy it is build, netty is build to give you most comfortable exprience both terms of API and the implementation from the day one ”
其实在技术选型上我有个基本观点,如果不是作为企业开发为目的的话,我一般选新不选旧,其次看官方文档是否完善,而且mina和netty都出自同一个作者。 所以没有多少理由就简单做了一个决定.
使用Angular Resources 封装Rest API
在前端应用开发当中我们用到最多的与后端服务进行交互的技术就是Ajax,当然在Angular中我们可以使用$resource去完成我们对于后端服务的ajax请求调用。
Vargant一个属于程序员的虚拟机
Vargant一个属于程序猿的虚拟机。
“这段程序明明在我的机器上运行的好好的,怎么到这就没法运行的”,
“我这儿都能运行,肯定是你机器的问题”。
在软件开发过程中往往由于开发环境不一致导致各种各样奇怪的问题,而是用Vagrant就可以很好的解决这种问题
Vagrant是用Ruby开发的,对虚拟机操作进行封装和简化,从而可以很方便的创建用于开发的虚拟机环境,Vagrant中的虚拟机都可以使用一个名叫BOX的东西来进行分发,下面主要记录一些Vagrant的基本使用方式和方法
谈谈关于前端的MVC
记得最早说前端的MVC时,在大学里面教我们HTML老师是这样解释的, 在很早以前制作网页时充斥则诸如dreamware的网页制作(非开发)工具, 大部分的网页中都混杂了大量的嵌套在标签中的样式, css的片段,以及各种javascript脚本的片段。 所以在学校期间时的前端mvc就是html负责数据的展示,关于样式的控制全都交给css来处理,而页面中的逻辑处理,都交给javascript来完成。 这应该算是最早的关于前端的mvc的解释了。不过其实那个时候大部分web系统的逻辑处理还是交给服务器端程序来处理的。
迁移到Hexo
话说我本身并不是一个十分勤奋的人,博客也是偶尔热血沸腾的时候写写,想想以前在大学的时候第一次看到别人用wordpress,那时感到无比的神奇与羡慕,所以一直依赖我都想拥有一个自己的独立博客,但是碍于囊中羞涩,独立域名那些什么的都没考虑了,而且一直没发现一个又帅有苦的域名(冷)。
之前写博客陆陆续续的在oschina上,oschina上唯一让我感觉比较爽的是,如果你的文章稍微有点内容就很容易能上推荐页。所以偶尔也能带来一些其他的满足感,但是它的页面设计真心不敢恭维,最终坚持了几个月以后还是就荒废了。
后面又发现了tumblr本来对我来说是一个足够理想和强大的博客落户地,它有非常牛B的自定义能力,而且文章编辑同时支持富文本和markdown,所以花了好一段时间去捣鼓tumblr的自定义。就像是找到了一个新奇的玩具一样。可以。。 唯有感叹墙内墙外。
记最近刨的那些坑之Tornado Chat
Tornado Chat
项目地址:https://github.com/yunlzheng/chat
开发时间:1周
开发目的
话说程序猿总是喜欢抛各种各样的坑,然后再往里面跳。
简介
基于Tornado 和 html5 websocket技术的匿名在线聊天工具