Giter VIP home page Giter VIP logo

chat-application's People

Contributors

aelbenney avatar ahamdi avatar ahmadmido avatar akhanfir avatar alaameddeb avatar azmitouil avatar benjp avatar boubaker avatar bourasom avatar dependabot[bot] avatar dongpd avatar exo-swf avatar hakermi avatar halaya avatar hassenelkamel-exo avatar hbenali avatar jn88 avatar luongtrunghieu avatar minhdv avatar mtrabelsi avatar mzorai avatar nguyenthienhuong avatar nttuyen avatar rdenarie avatar sofyenne avatar thomasdelhomenie avatar trongtt avatar trungjc avatar vannd avatar vstorm83 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chat-application's Issues

chat application cannot start

Hello,
I updated exo from 4.2.1 to 4.3.0 and also updated chat to 1.2.0 but it gives me the following error at startup and halts exo startup as well (chatServer is inside platform.ear):

09:45:38,139 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/chatServer]] (ServerService Thread Pool -- 57) JBWEB000287: Exception sending context initialized event to listener instance of class org.exoplatform.chat.listener.MigrateServiceListener: java.lang.NullPointerException
        at com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:153) [mongo-java-driver-2.14.0.jar:]
        at com.mongodb.DB.collectionExists(DB.java:524) [mongo-java-driver-2.14.0.jar:]
        at org.exoplatform.chat.services.mongodb.MongoBootstrap.initCollection(MongoBootstrap.java:158) [server-1.2.0.jar:1.2.0]
        at org.exoplatform.chat.services.mongodb.MongoBootstrap.initCollection(MongoBootstrap.java:153) [server-1.2.0.jar:1.2.0]
        at org.exoplatform.chat.services.mongodb.MongoBootstrap.getDB(MongoBootstrap.java:126) [server-1.2.0.jar:1.2.0]
        at org.exoplatform.chat.services.mongodb.MongoBootstrap.getDB(MongoBootstrap.java:110) [server-1.2.0.jar:1.2.0]
        at org.exoplatform.chat.services.MigrateService.<init>(MigrateService.java:22) [server-1.2.0.jar:1.2.0]
        at org.exoplatform.chat.listener.MigrateServiceListener.contextInitialized(MigrateServiceListener.java:19) [server-1.2.0.jar:1.2.0]
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
        at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_74]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_74]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_74]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_74]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_74]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122)

09:45:38,145 INFO  [GuiceManager] (ServerService Thread Pool -- 57) INITIALIZING GUICE

List of online users - encoding problem

Hi!

We met a problem with the list of online users. As you can see it on the attached picture, their name are not correctly encoded.

image

Could you implement a new parameter for managing the encoding ?
Thank you

Compatibility with Internet Explorer ?

Hi Benjamin,

Chat application works well with Chrome and Firefox, but not with Internet Explorer.
IE is our organization standard ( :( ).

Have you already planned IE compatibility tasks ?

Thank you
FX

configuration file not loaded in JBOSS

In Jboss, when creating a conf dir in the AS root, chat is unable to load it.

private static final String PROPERTIES_PATH = System.getProperty("catalina.base")+"/conf/chat.properties"

when defining catalina.base, the extension is no more loaded (no chat button in the admin bar)

Avatar not displayed when username contains a dot

When users have usernames with a dot (like r.denarie), the avatar is not displayed in chat application.
In eXo, the url used for the avatar is : /rest/jcr/repository/social/production/soc%3Aproviders/soc%3Aorganization/soc%3Atest%2502test/soc%3Aprofile/soc%3Aavatar
In chat, the url used is /rest/jcr/repository/social/production/soc:providers/soc:organization/soc:test.test/soc:profile/soc:avatar, which throws a 404 error. So the default avatar is displayed

We should escape characters not accepted by JCR.

Authentication mechanism conflict with MongoDB 3.2.0

When connecting to MongoDB with authentication enabled, Mongo throws an error, e.g.:
Failed to authenticate chatsvc@chat with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document

As described here, MongoDB default authentication mechanism is 5 (SCRAM-SHA-1) but Chat application is connecting with mechanism 3 (MONGODB-CR). To use this mechanism in MongoDB it is required to delete all users, change auth. mechanism from 5 to 3 and recreate the users.
This requirement is not mentioned anywhere in the documentation, nor is any restriction as to what version of MongoDB is required.
If the issue is the mongo java driver version 2.12.2, perhaps updating that to version 3.2 would be nice as that supports MongoDB versions 2.4 through 3.2. Or it's just a default authentication mechanism setting that requires to be changed. I'm not acquainted with how this driver/code works so this is a bit of speculation on my part.

optimisations

Hello,

I think the app performance could benefit from stopping sending useless requests, and it would be done at low cost on client side :

  • only send read request when there's a notification (returning notifications by room along with the total amount), and only returns the last messages
  • stop sending xhr requests when tab is in background (using visible api) and refresh immediately when restoring tab. But it could be interesting to keep notification request as well

Besides that, what your toughts on using websockets instead of polling ? It could be interesting but when i look at Google and Facebook, they dont use websockets and continue to use long polling (maybe due to some lack of reliabily) !
So Is there a real use case (intranets limited chat, smaller company, high latenty networks) ? Or should we only rely on some of the http/2 improvements (reduced handshake, header size) and keep doing (fast/long) polling ?

Change de administration of a chatgroup.

The chat groups created dont allow transfer of administration and some time, when the person leave a team, it become a problem that need to create a new group;

sound notification

play a short sound when a new message notification arrives.

Probably something the user may want to turn off.

Integration with Whatapp

the possibility to integrate and forward messages from whatapp to exo chat could be a great oportunity to stimulate exo chat use.
we usualy recieve messagens in whatapp and because it is not easy to foward we tend to comunicate using whatapp

Tomcat6 (eXo bundle) & Tomcat7 (for chatServer) on the same machine (Windows Server 2008 R2) - chatServer unavailable

Hi Benjamin!

We are trying to setup "2 Tomcat servers mode" following your recommendations in the wiki. After several tests, we get back eXo website and the chat portlet. But the chat service is unavailable.

image

What we have done :
0.Stop mangodb and eXo.
1.Download and unzip Tomcat7
2.Setup conf/server.xml file
-
-
3.Copy ChatServer in tomcat7/webapps directory
4.Delete ChatServer from eXo/webapps
5.Restart eXo, tomcat7 and mangodb

Could you help us ??
Thank you
FX

NB : we didn't add ProxyPass rules... Tomcat7 refuses to startup.

video chat stops working when there are multiple windows with chat app opened

I'd like to keep a tab with my intranet (where chat app is installed) and have the standalone app opened simultaneously. Unfortunately when I do this, the weemo driver looses the connection and doe snot seem to be able to reconnect until I close one of both.

It's an almost showstopper for me because, even if I can give up using the standalone app, I don't want to stop using several tabs of my intranet.

Service not available - Servlet error

Hi,

We have downloaded sources yesterday and build it.

Chat service is not available : we got an http 500 error.

image

Have you met this error or is this due to our configuration file ?
Thank you in advance

François-Xavier

missing index ?

Hello,

I'm doing some load testing with 100 000 rooms and 7 500 000 messages (timestamp of messages are within the last 30 days).

query profile show that some read requests scan all the messages collection, because timestamp criteria is not selective enough.

When i add an index on roomId field, all is getting faster

Dependency missing in standalone server build

Hello,

I get a 500 error when calling saveTeamRoom service on a Two Server Mode (standalone server) .
Some jar used by "org.exoplatform.services.deployment.Utils.sanitize" method are missing.

adding this dependency in pom.xml should resolve the problem.

<groupId>org.exoplatform.commons</groupId>
<artifactId>commons-component-common</artifactId>

Regards

Failed building the project

Hi,

we tried to build the project according to the instructions you are providing on the README.md section. But we were not able to have it built correctly with maven due to the following error :

[ERROR]/home/kaffein/projects/chat-application/server/src/main/java/org/benjp/portlet/chat/ChatServer.java:[60,3] cannot find symbol
symbol : class Route
location: class org.benjp.portlet.chat.ChatServer

So it seems that the @route annotation is not found within the project. Are there some dependencies that are missing ?

thanks,

Chat not working. Please help.

Scenario:

  • eXo: platform-community-4.0.6
  • users: LDAP readonly repo, with only users synced. sync job active for new ldap users.
  • chat: running in two servers mode: 1 in tomcat 7.0.54 version (chatServer.war - standalone) and eXo as second one.
  • maven: chat build with maven procedure.
  • host: both are places in different ports, with apache anti phising trick done (and successully working).
  • JAVA_HOME and JRE_HOME both pointing to a openjdk-1.7 installation.

After the login screen, I just got in Chrome console a request error:

http://central.ampliato.com.br:10700/chatServer/notification?user=root&token=979412bd16bee4627624db838ee489f289d27000

returning 404 HTTP status and "Petit malin !" text.

Entering in chat "open chat" dropdown menu option (topmost bar), I got a black screen "Service Not Available. Please, come back later.", with several requests to (again in Chrome console):

http://central.ampliato.com.br:10700/chatServer/whoIsOnline?user=root&token=979412bd16bee4627624db838ee489f289d27000&filter=&isAdmin=false&timestamp=1406328682562

With the same 404 HTTP status and the same text.

Both eXo and Tomcat console has no errors messages during this requests.

Tomcat Chat Server Log: http://pastebin.mozilla.org/5622869
eXo community Tomcat Log: http://pastebin.mozilla.org/5622912
httpd log: http://pastebin.mozilla.org/5622921
httpd.conf http://pastebin.mozilla.org/5622932
chat.properties http://pastebin.mozilla.org/5622933 (mongodb is listening in 10717 port)

Some questions:

  1. Why isn't this working?
  2. Is there any trick to get it working with LDAP users?
  3. I was using a self-signed certified and just get a lot of different errors with HttpClient requests in chat application. We can try to fix this second problem in another moment, but I was forced to remove my certificate to analyse these first-one problems.

Some considerations:

  1. I entered in "chat" database, "users" collection in mongodb, manually, and it is empty. It looks like the "register user" procedure is not working, since they are different entries (a user in eXo and a user in chat mongodb)
  2. I tried to search in github the addUser method, but I could not understand who the "enter eXo user" event is chained to chat portlet. I guess that there is a problem around this. Maybe wrong.
  3. There is some blind points in your documentation. May I update your wiki pages?

call interrupted when opening another chat app configured with a different key.

We have chat app running on two separate eXo Platform instances. Both chat apps are configured with different weemo keys.
I can start a call on one server, but as soon as I open a browser page on the other server, the weemo call is interrupted.

The only way to restart the call is to close the 2nd browser window, refresh the first and invoke /terminate.

Add Chat notification portlet in navgation bar

Hi!

Could you explain how to add the notification portlet in the navigation bar please ?

We have updated the sharedlayout.xml file in our custom extension (following chapter 2.6.5.8. Configure a shared layout : "To override the sharedlayout.xml file, you need to add your configuration file into the custom-extension.war/WEB-INF/conf/portal/portal/Sharedlayout.xml file"). But the portal cannot display the portlet.

Thank you
FX

scaling the database

Hello,

I'm having some performance concerns with huge number of clients and a single MongoDB instance.
on heavy load there are a lot of waiting read commands in the mongo queue (almost 200)

So my first question : what would be the best way for scaling out ?
-using replication
-using sharding.

Firstly I'm not used to Mongo, and i dont know if replication would completely remove blocking read !
Secondly, we'd need to supply a list of mongo instances URL and some ReadPreference to the java driver in MongoBootstrap class

Would sharding be a more flexible solution ? (if room activity is correctly distributed among shards, blocking read would drastically decrease ?)

Kind regards

cannot find symbol : variable PROPERTY_WEEMO_KEY

Compile for use in PLF 4, error compile ChatApplication :

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project application: Compilation failure
[ERROR] /root/addons/chat-application/application/src/main/java/org/benjp/portlet/chat/ChatApplication.java:[89,69] cannot find symbol
[ERROR] symbol : variable PROPERTY_WEEMO_KEY
[ERROR] location: class org.benjp.utils.PropertyManager

Uploaded file posted in wrong chat

The link of the uploaded file may be posted in the wrong chat if you do this :

  • chat in 1:1
  • drag and drop a large file in the conversation
  • while it's being uploaded, switch to another 1:1 conversation and start discussing
  • after download the file link is posted in the new instead of the olld

note : permissions on the file are set with read permission for the 1st chat (which is OK)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.