exoplatform / chat-application Goto Github PK
View Code? Open in Web Editor NEWChat application
License: GNU Affero General Public License v3.0
Chat application
License: GNU Affero General Public License v3.0
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
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
How about having support for Matrix protocol? Or at least bridge?Here is corresponding topic on Matrix wishlist: turt2live/matrix-wishlist#298.
We want to improve the Mini Chat UX and UI by getting informed about new received messages by a badge.
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)
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.
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.
Hello,
I think the app performance could benefit from stopping sending useless requests, and it would be done at low cost on client side :
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 ?
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;
play a short sound when a new message notification arrives.
Probably something the user may want to turn off.
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
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.
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.
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.
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
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
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,
Scenario:
After the login screen, I just got in Chrome console a request error:
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):
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:
Some considerations:
Hi!
Could you release a new version for french speaking users ?
I can help you to translate labels...
Thank you
FX
It used to work, but not anymore. That's a pity because this is where it is the most useful
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.
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
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
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
Hello,
I need to use SSL connection and cert authentication but there's no way to pass the option to MongoClientOptions in MongoBootstrap class (see http://mongodb.github.io/mongo-java-driver/3.2/driver/reference/connecting/ssl).
Other usefull options like size of connection pool could be externalized as well in the chat.properties file
Regards
The link of the uploaded file may be posted in the wrong chat if you do this :
note : permissions on the file are set with read permission for the 1st chat (which is OK)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.