当我们涉及到客户端和服务器进行通信的时候,服务器后台程序的编写往往是一大难题
比如我正在使用E4A(或Android studio 或按键精灵)编写一个app,想要利用服务器做一个数据存储系统,那服务器上的程序该使用什么什么语言编写,使用什么通讯类型,目前常见的是TCP协议,易语言的服务器组件就是基于TCP协议的,但是存在2个问题
1:易语言的服务器组件和其他语言并不能完美兼容(比如容易断开)
2:很多语言并没有直接封装TCP的库供大家调用
很多人可能会说,为什么非得使用易语言,我可以使用其他语言啊,我们先不谈语言,先谈TCP协议
不管你使用什么语言,比如使用C++编写一个基于TCP通信的服务器程序,你使用的E4A、按键精灵,c#,Python等如何与其通信?TCP的连接和数据发送功能如何封装呢?假如后期客户做起来了想增加一个苹果的程序,这个苹果的程序的编程语言是否自带TCP的库,如果没带自己怎么封装?
其次我们的服务器可能使用到一些第3方平台提供的功能服务,比如我想让服务器在第3方平台上对接一个短信验证码系统,对接一个对象存储系统,对接一个邮箱系统,我们的服务器程序所使用语言必须要能够去对接,而对接这些服务我们需要部署平台提供的SDK和开发文档
重点来了,一般SDK和开发者文档只有以下3种几种语言的:Java、Python、PHP
Node.js、.NET、C#、C、Ruby可能有
易语言、tc、按键精灵、vb等的选择性有
————————————————————————————————————
前面我们已经说了,用TCP协议作为通信局限性太大,那么HTTP协议就是一个非常不错的选择,几乎所有的编程语言都直接封装有http请求的相关功能
再结合我们可能需要对接第3方平台功能,基本后端接收系统所以用的语言只能在Java、Python、PHP三个中间选
JAVA虽然号称万能语言,但是不觉得对新手及各位编程爱好者不友好,先不说难度,就是配置一个JAVA的运行环境,我估计很多人就崩溃放弃了
Python书香觉得不是在找库就是找库的路上,同时环境配置和安装很是比较麻烦的,而且语法规则太严谨,
如此看来还是php是最佳选择
但是php语言作为一个解析语言,虽然在接收http请求这一块做的很好,但是在功能调用上可能就有点尴尬了,因为php是用来写网站的,基本没有库(模块,dll等)的概念,什么都靠自己写
比如我想要在服务器弄一个验证码识别系统(不对接其他平台),这用php来写人都蒙了
但是,易语言依靠其几十上百万的模块,写这写功能那可以说是轻而易举,只有你想不到的功能,没有易语言找不到的模块
突然,书香瞬间充满智慧
如果使用php来接收http请求→→→然后将接收到的数据传递给易语言的程序→→→易语言处理好以后再传回给php→→→php再返回易语言处理的结果给请求端
那就相当于php可以直接调用易语言那几十上百万的库,而易语言用户也相当于可以用易语言来代替php完成很多功能,有这想法后,书香开始进入研究状态
——————————————————————————————————
插曲:书香发现易语言有人封装了http相关的库,即使用易语言直接接收http请求,但发现有的是由于无法兼容所有的系统环境,有的是容易崩溃,而且不利于后期的拓展,同时也没有解决对接第3方平台SDK这一点,因此最终决定整套程序基于全球第一的Apache服务器核心来开发,即Apache核心接收到http请求后,映射给DLL
书香耗时3年(不要误会,这3年我还在研究其他产品,只是每天会去思考这个程序该如何设计),直到今天终于开发出了一个相对较为满意的版本,我命名为EWEB,名字的含义是我希望易(E)语言可以在WEB方面有所发挥