Orbited浏览器间的实时通讯框架
Orbited 提供一个纯 JavaScript 和 HTML 的浏览器 Socket 通讯包,你可以把它看成是web的路由器和防火墙,允许你的web应用和后端的系统进行通讯,在这基础上你可以实现任何的网络通信协议。
要使用 Oribited 当然还需要一个服务器端,这是用 Python 开发的一个服务程序,用来处理来自浏览器之间的通讯请求。点击这里查看在 Windows 下的安装方法。
这里有一个使用 Oribited 搭建的Web聊天室的在线演示。
体系结构图:
一段示例代码:
<script type="text/JavaScript">
Orbited.settings.port = 9000;
amqp_broker_port = 7000;
amqp_conn = amqp.Connection({host: 'localhost',
port: amqp_broker_port,
send_hook: function(msg) { // for debugging
append_msg('SENT', msg);
},
recive_hook: function(data) { // for debugging
append_msg('RECV', data);
}
});
amqp_conn.start();
// You should have your server generate a UUID since browser methods
// are unreliable at best
session = amqp_conn.create_session('not_a_great_id' + (new Date().getTime() + Math.random()));
var fedoraproject = "org.fedoraproject-" + session.name;
session.Queue('declare', {queue:fedoraproject, exclusive:true});
session.Exchange('bind', {exchange: "amq.topic",
queue: fedoraproject,
binding_key: "org.fedoraproject.#"});
// Bind each queue to the control queue so we know when to stop
session.Exchange('bind', {exchange:"amq.topic",
queue: fedoraproject,
binding_key:"control"});
</script>
评论