LiveHelperChat / livehelperchat

Live Helper Chat - live support for your website. Featuring web and mobile apps, Voice & Video & ScreenShare. Supports Telegram, Twilio (whatsapp), Facebook messenger including building a bot.
http://livehelperchat.com
Apache License 2.0
1.97k stars 699 forks source link

Node.js problem #261

Closed evgeny-test closed 10 years ago

evgeny-test commented 10 years ago

The client receives the message from the web operator, but the web operator from the client does not receive messages. This problem only if client browser is IE9 or earlier, Opera. IE11, FF, Chrome, Safari clients no have a problem. Without Node.js no this problem.

remdex commented 10 years ago

So,

It's just node.js limitation nothing i can do about that. Either new browser either won't work. Although on my testing environment it worked kinda :). But i was using IE11 with developer tool set document and render mode to ie8.

evgeny-test commented 10 years ago

But the messages are sent. But operator chat is not updated. At the same time messages appear in the list in the administration panel.

remdex commented 10 years ago

Message are send because it's using ajax to send. And using node.js for notification. So in your case just notification does not work. I try to see at home. But there is little hope i can do anything about that.

2014-01-28 evgeny-test notifications@github.com

But the messages are sent. But operator chat is not updated. At the same time messages appear in the list in the administration panel.

Reply to this email directly or view it on GitHubhttps://github.com/remdex/livehelperchat/issues/261#issuecomment-33470784 .

Sincerely, Remigijus Kiminas

evgeny-test commented 10 years ago

Statistics on client browsers for 2013y for my site. stat

evgeny-test commented 10 years ago

By the way, if you're interested: IE6 does not show my new site :-) IE7 does not display the built-in chat. IE8 displays like this: ie8

remdex commented 10 years ago

Ok few things.

  1. On my enviroment IE8 works as it should related part to IE8
  2. And in general IE8 is in dump mode and it depends on you how much you want to support it. Like in general it's not supported.
evgeny-test commented 10 years ago

Currently among all users Opera uses 16%, IE7-9 uses 6%. Public Statistics for Russia. It's almost a quarter of users.

remdex commented 10 years ago

As I told, on my pc IE9 works as it should. I used ie11 and switched to emulator mode there :)

evgeny-test commented 10 years ago

In the trash IE :-) I see what the problem with design later. You can do a Node.js notifications depending on the user's browser? If the program is supported, use it. If not, do not use. Try this browser http://www.opera.com/

remdex commented 10 years ago

I was trying that before but the issue is, that even if i can downgrade in user browser do not use it, i cannot do that in admin. And if admin will be using node.js and user not, it still won't work.

2014-01-28 evgeny-test notifications@github.com

In the trash IE :-) I see what the problem with design later. You can do a Node.js notifications depending on the user's browser? If the program is supported, use it. If not, do not use.

Reply to this email directly or view it on GitHubhttps://github.com/remdex/livehelperchat/issues/261#issuecomment-33509211 .

Sincerely, Remigijus Kiminas

evgeny-test commented 10 years ago

Some users may be blocked Node.js ports. Then they too will to have problems. The Node.js works nice in new browsers, but has too many problems to use :-(

Maybe operator chat can determine the room presence in the Node.js server? If no room then standart ajax requests?

remdex commented 10 years ago

Well, perhaps more logical way would be just then operator joins a chat execute some signal like ping me. And if operator does not receive a ping from client he switches to ajax mode. But anyway, i leave that for you to implement :D

2014-01-28 evgeny-test notifications@github.com

Some users may be blocked Node.js ports. Then they too will to have problems. The Node.js works nice in new browsers, but has too many problems to use :-(

Maybe operator chat can determine the room presence in the Node.js server? If no room then standart ajax requests?

Reply to this email directly or view it on GitHubhttps://github.com/remdex/livehelperchat/issues/261#issuecomment-33510738 .

Sincerely, Remigijus Kiminas

remdex commented 10 years ago

One more thing as for custom port. You can use let say 443 port. It's standard port for ssl so in 99% it should be passed. Also nginx new versions supports proxy to node.js server. So node.js can be running on some custom port. And server itself let say nodejs.example.com

evgeny-test commented 10 years ago

But anyway, i leave that for you to implement :D

Ouch, this is bad news :-(

remdex commented 10 years ago

In general to finish all this. On IE8 on my environment all works (part related to node.js). IE7 is in general not supported. IE8 partly. But node.js works here. Just need some style fixes. But there are some foundation issuues with IE8 itself. Perhaps I will try to add this fix to see does it helps for layout issues. https://gist.github.com/hatefulcrawdad/5068210

evgeny-test commented 10 years ago

You can commit this changes for IE8 supporting? May be you need edited files?

/var/www/trans/chat/design/defaulttheme/tpl/lhchat/getstatus/container.tpl.php /var/www/trans/chat/extension/unbrand/design/unbrandtheme/tpl/lhchat/getstatus/container.tpl.php

before:

lhc_container {background-color:#FFF;height:"+(parseInt(widgetHeight)+26)+"px;

after:

lhc_container {background-color:#FFF; width:"+widgetWidth+"px; height:"+(parseInt(widgetHeight)+26)+"px;

/var/www/trans/chat/design/defaulttheme/tpl/lhchat/getstatus.tpl.php

before: <?php if ($currentPosition['posv'] == 'b') : ?> dm.style.bottom = (parseInt(dm.style.bottom)+parseInt(dm.attrHeight)-35)+'px'; <?php endif; ?>

after: <?php if ($currentPosition['posv'] == 'b') : ?> if(dm.style.bottom!='' && dm.attrHeight!='')dm.style.bottom = (parseInt(dm.style.bottom)+parseInt(dm.attrHeight)-35)+'px'; <?php endif; ?>

before: <?php if ($currentPosition['posv'] == 'b') : ?> dm.style.bottom = (parseInt(dm.style.bottom)-parseInt(document.getElementById('lhc_iframe').style.height)+9)+$ <?php endif;?>

after: <?php if ($currentPosition['posv'] == 'b') : ?> if(dm.style.bottom!='')dm.style.bottom = (parseInt(dm.style.bottom)-parseInt(document.getElementById('lhc_iframe').style.height)+9)+$ <?php endif;?>

cp https://github.com/scottjehl/Respond/raw/master/src/respond.js /var/www/trans/chat/design/defaulttheme/js

/var/www/trans/chat/design/defaulttheme/tpl/pagelayouts/parts/page_head_js.tpl.php

before: js/fileupload/jquery.fileupload.js');?>"> after: js/fileupload/jquery.fileupload.js;js/respond.js');?>">

remdex commented 10 years ago

I will see at home. But anyway thanks for efforts.