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>
评论
