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>