Web Chatting,angularjs + Websocket + Openfire Vs angularjs + node.js

时间:2015-03-03 03:57:14

标签: angularjs node.js websocket openfire livechat

现在,我必须在我的Web应用程序中添加一个实时聊天服务(Angularjs + Spring REST + mybatic)。 我想知道哪种方式对我们的发展更有利。

1. angularjs + Websocket + Openfire
2. angularjs + node.js

是否有另一种方式来开发实时聊天。

2 个答案:

答案 0 :(得分:1)

您可以使用Strophe JavaScript Library来实施实时聊天。 该库有两个连接选项 1)Web-socket和 2)波什

Web插槽连接通常仅由少数浏览器(如Google Chrome)支持,但不受Mozilla Firefox支持。所以最好的方法是与BOSH联系。

这个库也有很棒的文档。 所以它变成了 AngularJs(用于设计视图)
+
Strophe(中间件连接服务器)
+
Openfire(XMPP服务器)

答案 1 :(得分:1)

您可以使用 Openfire服务器(XMPP服务器) + JSXC作为网络客户端应用

https://www.igniterealtime.org/projects/openfire/

下载并安装openfire服务器

JSXC使用Strophe JavaScript Library,因此通过op​​en fire管理面板在openfire服务器中启用BOSH。 通常它位于端口9090上,因此您的管理面板将在localhost:9090

打开

JSXC Web客户端具有内置的所有基本功能,如名册,聊天窗口,消息传递,文件传输,视频呼叫,在线状态,设置,OTR加密等等。见下图:

JSXC web client

将这些文件包含在您的网络应用主页/布局页面中:

  1. " /jsxc/build/css/jsxc.css"
  2. " /jsxc/build/css/jsxc.webrtc.css"
  3. " /jsxc/example/css/example.css"

  4. " /jsxc/build/lib/jquery.colorbox-min.js"

  5. " /jsxc/build/lib/jquery.slimscroll.js"
  6. " /jsxc/build/lib/jquery.fullscreen.js"
  7. " /jsxc/build/lib/jsxc.dep.js"
  8. " /jsxc/build/jsxc.js"
  9. " /jsxc/example/js/main.js"
  10. 将JSXC库添加到Web应用程序后,它将如下所示。

    enter image description here

    您需要配置的文件是" jsxc \ example \ js \ main.js"

    下面我分享了我在网络项目中完成的配置:

    $(function() {
       var settings = {
          xmpp: {
             url: 'http://'+OPENFIRE_DOMAIN+':7070/http-bind/',
             domain: OPENFIRE_DOMAIN,
             resource: 'example',
             overwrite: true,
             onlogin: true
          }
       };
    
       jsxc.init({
          logoutElement: $('#logout'),
          numberOfMsg:1000,
          onlineHelp: 'mailto:support@ilook.com',
          timeout:3000,
          busytimeout: 15000,
          notification: true,
          defaultLang: 'en',
          checkFlash: false,
          rosterAppend: 'body',
          root: '/' + PROJECT_NAME + 'jsxc/build/',
          displayRosterMinimized: function() {
             return false;
          },
          // otr: {
          //    debug: false,
          //    SEND_WHITESPACE_TAG: true,
          //    WHITESPACE_START_AKE: true
          // },
          loadSettings: function(username, password, cb) {
             cb(settings);
          },
          xmpp: {
             url: settings.xmpp.url
    
          }
       });
    
    function jsxcLogout()
    {
       jsxc.xmpp.logout;
    }