Orbited - 浏览器间的实时通讯框架


MIT
跨平台
Python

软件简介

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>