V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
openercn
V2EX  ›  程序员

第一个 Hello Worlds ,打开 opener_server http 容器的大门。OPener_Server 第 3 弹

  •  1
     
  •   openercn · 2016-11-21 22:24:56 +08:00 · 1650 次点击
    这是一个创建于 2908 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面我们开始编写一个 Hello Worlds ,你将看到 opener_server 带来的是多么简单的编程!

    在 OPener_Server 上编写一个 Hello Worlds 有很多方式,我们用最简单的网页模式,写一段 javascript 代码,来注入我们的 Hello Worlds

    使用 javascript 与 jquery :

    
    var url="https://test1.openerserver.com:10008/op";  // 安装了 opener_server 的服务器地址: test1.openerserver.com 
    var start_http_server={'action':'new_http_server','ip':'','port':'1008'}; // 开启一个新的 http 服务器,监听在端口 1008 上
    var reg_url={'action':'reg_url','type':'http_get','url':'/helloworld','host':'*:1008','go':hello_fun}; 
    //注册一个 url 地址 /helloworld ,绑定到 1008 端口上,设定这个 url 处理模式为 http get 模式,最后处理这个 url 的代码放到 hello_fun
    
    var hello_fun=`my ($r,$key)=@_; 
    $n->{send_normal_resp}->($r,$key,'Hello Worlds'); 
    
    `;
    //### 接收传入参数,$r 包含所有这个 http 请求相关信息,$key 包含该 http 请求的唯一 id
    //### 发送返回,返回内容是 html ,加入一个 hello world 字符串。
    
    var opener_flag='opener'; // 设定 http header 中 opener_flag 字段,相当于访问该 opener_server 的密码
    url_post_data(url,JSON.stringify(start_http_server)); // ajax post 到 opener_server 服务器
    url_post_data(url,JSON.stringify(reg_url));			  // ajax post 到 opener_server 服务器
    function url_post_data(go,data){
    	$.ajax({
    		  url: go,
    		  cache: false,
    		  headers: {
    			  opener_flag:opener_flag
    		  },
    		  data: data,
    		  type: 'POST',
    		  dataType: 'json',
    		  success: function(data){
    			if (data.result=='ok')
    			{	
            console.log(data);		
    			}else{
    				console.log('error');
    			}
    		  },
    		  error: function(dd,mm){
    			console.log('error:');
    			console.log(dd);
    			console.log(mm);
    			}
    	});
    }
    

    在一个含有 jquery 代码的 html 页面上,执行上面的代码就可以了。
    然后访问 http://test1.openervpn.com:1008/helloworld 就可以看到结果。

    我们已经执行了上面的代码,那么下面你可以更改上面这段代码,来实现你需要的 Hello Worlds 例如:更改要注册的 url 地址...

    openercn
        1
    openercn  
    OP
       2016-11-22 17:54:23 +08:00
    请大家测试的时候,不要注入 死循环或者其他恶意之类的代码。

    因为 test1.openerserver.com 上的 opener_server 容器是以 root 权限运行的,所以会系统宕机,导致其他人无法体验。
    我们总是需要重启进程来解决。

    现阶段,我们的体验服务器还没有明确的权限划分,大家暂时只能都在一个服务器上做体验。所以请大家正常使用。
    alexecn
        2
    alexecn  
       2016-11-22 18:05:17 +08:00
    哦, http://test1.openerserver.com:1008/helloworld 下午好像死了一段时间。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2711 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:53 · PVG 19:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.