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

2016-11-21 22:24:56 +08:00
 openercn

下面我们开始编写一个 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 地址...

1686 次点击
所在节点    程序员
2 条回复
openercn
2016-11-22 17:54:23 +08:00
请大家测试的时候,不要注入 死循环或者其他恶意之类的代码。

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

现阶段,我们的体验服务器还没有明确的权限划分,大家暂时只能都在一个服务器上做体验。所以请大家正常使用。
alexecn
2016-11-22 18:05:17 +08:00
哦, http://test1.openerserver.com:1008/helloworld 下午好像死了一段时间。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX