Skip to content

Commit 96b8e8c

Browse files
committed
Sync messages instantly and Credis support through composer
1 parent 8ab1dec commit 96b8e8c

9 files changed

Lines changed: 73 additions & 7 deletions

File tree

nodejshelper/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ node_modules
22
serversc/lhc/node_modules
33
serversc/lhc/node_modules
44
settings/settings.ini.php
5-
package-lock.json
5+
package-lock.json
6+
composer.lock

nodejshelper/bootstrap/bootstrap.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ public function run() {
1212

1313
$dispatcher = erLhcoreClassChatEventDispatcher::getInstance();
1414
$dispatcher->listen('onlineuser.proactive_send_invitation',array($this,'proactiveInvitationSend'));
15+
16+
$dispatcher->listen('chat.messages_added_fb', array($this,'messageReceived'));
17+
$dispatcher->listen('chat.addmsguser', array( $this, 'messageReceived' ));
18+
$dispatcher->listen('telegram.msg_received', array( $this, 'messageReceived' ));
19+
$dispatcher->listen('twilio.sms_received', array( $this,'messageReceived' ));
20+
$dispatcher->listen('chat.web_add_msg_admin', array( $this,'messageReceived' ));
21+
22+
// Chat was accepted.
23+
$dispatcher->listen('chat.accept', array( $this,'statusChange' ));
24+
$dispatcher->listen('chat.close', array( $this,'statusChange' ));
1525
}
1626

1727
public function __get($var)
@@ -59,6 +69,8 @@ public function getSettingVariable($var) {
5969

6070
public function registerAutoload()
6171
{
72+
include 'extension/nodejshelper/vendor/autoload.php';
73+
6274
spl_autoload_register(array(
6375
$this,
6476
'autoload'
@@ -81,6 +93,18 @@ public function proactiveInvitationSend($params)
8193
erLhcoreClassNodeJSRedis::instance()->publish('uo_' . $params['ou']->vid,'o:' . json_encode(array('op' => 'check_message')));
8294
//erLhcoreClassNodeJSRedis::instance()->publish('sample','o:' . json_encode(array('op' => 'check_message')));
8395
}
96+
97+
public function messageReceived($params)
98+
{
99+
erLhcoreClassNodeJSRedis::instance()->publish('chat_' . $params['chat']->id,'o:' . json_encode(array('op' => 'cmsg')));
100+
}
101+
102+
public function statusChange($params)
103+
{
104+
erLhcoreClassNodeJSRedis::instance()->publish('chat_' . $params['chat']->id,'o:' . json_encode(array('op' => 'schange')));
105+
}
106+
107+
84108
}
85109

86110

nodejshelper/composer.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "livehelperchat/nodejs",
3+
"version": "1.0",
4+
"description": "NodeJS support for Live Helper Chat",
5+
"type": "project",
6+
"homepage": "http://ivehelperchat.com",
7+
"license": "Apache-2.0",
8+
"authors": [
9+
{
10+
"name": "Live helper Chat",
11+
"homepage": "http://ivehelperchat.com"
12+
}
13+
],
14+
"support": {
15+
"email": "remdex@mgmail.com"
16+
},
17+
"require": {
18+
"colinmollenhour/credis": "dev-master#215d287d49c4f2d97d6711e241e6478363cdf67a"
19+
},
20+
"minimum-stability": "dev",
21+
"config": {
22+
"vendor-dir": "vendor"
23+
}
24+
}

nodejshelper/design/nodejshelpertheme/js/customjs-admin.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ var channelList = [];
3939
typingIndicator.text(op.msg).css('visibility','visible');
4040
} else if (op.op == 'vts') { // Visitor typing stopped
4141
typingIndicator.text(op.msg).css('visibility','hidden');
42+
} else if (op.op == 'cmsg') { // Visitor has send a message
43+
lhinst.syncadmincall();
4244
}
4345
});
4446
}
@@ -80,6 +82,8 @@ var channelList = [];
8082
ee.removeListener('operatorTyping', operatorTypingListener);
8183
ee.removeListener('removeSynchroChat', removeSynchroChatListener);
8284

85+
confLH.chat_message_sinterval = confLH.defaut_chat_message_sinterval;
86+
8387
} catch (e) {
8488
console.log(e);
8589
}
@@ -97,6 +101,8 @@ var channelList = [];
97101
ee.addListener('chatTabLoaded', addChatToNodeJS);
98102
ee.addListener('operatorTyping', operatorTypingListener);
99103
ee.addListener('removeSynchroChat', removeSynchroChatListener);
104+
105+
confLH.chat_message_sinterval = 15000;
100106
} catch (e) {
101107
console.log(e);
102108
}

nodejshelper/design/nodejshelpertheme/js/customjs-widget.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141

4242
ee.removeListener('visitorTyping', visitorTypingListener);
4343
ee.removeListener('visitorTypingStopped', visitorTypingStoppedListener);
44+
45+
confLH.chat_message_sinterval = confLH.defaut_chat_message_sinterval;
4446
});
4547

4648
socket.on('connect', function () {
@@ -61,6 +63,11 @@
6163
} else {
6264
instStatus.css('visibility','hidden');
6365
}
66+
} else if (op.op == 'cmsg') {
67+
lhinst.syncusercall();
68+
} else if (op.op == 'schange') {
69+
lhinst.chatsyncuserpending();
70+
lhinst.syncusercall();
6471
}
6572
});
6673

@@ -69,6 +76,9 @@
6976

7077
ee.addListener('visitorTyping', visitorTypingListener);
7178
ee.addListener('visitorTypingStopped', visitorTypingStoppedListener);
79+
80+
// Make larger sync interval
81+
confLH.chat_message_sinterval = 15000;
7282
};
7383
});
7484

nodejshelper/design/nodejshelpertheme/js/nodejshelper.admin.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodejshelper/design/nodejshelpertheme/js/nodejshelper.widget.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodejshelper/design/nodejshelpertheme/tpl/pagelayouts/parts/page_head_js_extension_multiinclude.tpl.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
'port':'<?php echo erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionNodejshelper')->getSettingVariable('port')?>',
1313
'secure':'<?php echo erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionNodejshelper')->getSettingVariable('secure')?>'
1414
};
15-
15+
confLH.defaut_chat_message_sinterval = confLH.chat_message_sinterval;
1616
<?php if (erLhcoreClassSystem::instance()->SiteAccess == 'site_admin' && erLhcoreClassUser::instance()->isLogged()) :
1717
$currentUser = erLhcoreClassUser::instance();
1818
$userData = $currentUser->getUserData(true); ?>

nodejshelper/design/nodejshelpertheme/tpl/pagelayouts/parts/page_head_js_user_extension_multiinclude.tpl.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
'port':'<?php echo erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionNodejshelper')->getSettingVariable('port')?>',
1515
'secure':'<?php echo erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionNodejshelper')->getSettingVariable('secure')?>',
1616
};
17+
confLH.defaut_chat_message_sinterval = confLH.chat_message_sinterval;
1718
</script>
1819
<script src="<?php echo erLhcoreClassDesign::designJS('js/nodejshelper.widget.min.js');?>"></script>
1920
<?php endif; ?>

0 commit comments

Comments
 (0)