Приложение для чата ExtJS Websocket

#extjs #websocket #extjs4 #chat

#extjs #websocket #extjs4 #Чат

Вопрос:

Я устанавливаю приложение MVC с Extjs 4.2, в котором есть поддержка чата для моего клиента. Для этого я использую ExtJS Websocket и я следовал инструкциям из этого руководства https://market .sencha.com/extensions/ext-ux-websocket но, похоже, я мог бы работать над трансляцией сообщения всем подключенным клиентам в разных браузерах. Вот мои коды:

         this.ws = Ext.create('Ext.ux.WebSocket', {
            url : 'ws://localhost:6966',
            autoReconnect : true,
            autoReconnectInterval : 1000,
            keepUnsentMessages : true,
            listeners : {
                open : function(ws) {
                    ws.send('notify', {
                        'message' : 'Connected to server!',
                        'id' : '123456'
                    });
                },
                message : function(ws, data) {
                    var data = Ext.decode(data);
                    console.log(data)
                },
                close : function(ws) {
                    var panel = Ext.getCmp('panel'   ws.url);

                    if ((panel != null) || (panel != undefined)) {
                        panel.destroy();
                    }
                }
            }
        });

        this.ws.on('notify', function(data) {
            Ext.get('chat-history').dom.innerHTML  = '> '   data.msg   '<br/>';
        });

        Ext.ux.WebSocketManager.register(this.ws);
 

И я использую это для отправки / трансляции сообщений:

 var data = {
            id : '123456',
            msg : 'sample message'
        };

        Ext.ux.WebSocketManager.broadcast('notify', data);
 

Ответ №1:

Вы можете попробовать это по этой ссылке.

Вам нужны NodeJS и NPM.

Затем установите все зависимости:

 $ npm install
 

Откройте websocket для каждого нужного порта:

 $ node demo/server.js 9001 9002 9003
 

Затем подключите свой клиент, используя опубликованный вами код.

Комментарии:

1. Проголосовал против, поскольку предлагаемое решение требует установки совершенно другой технологии. Очень вероятно, что есть решение в чистом ExtJS (хотя у меня пока нет этого решения …).