Still writing article, please come back later...
Could you try our last stable: 5.2.3 version? There are some changes and improvements in the web sockets component as well, so it may work better. Also, for the Mac Chrome users, make sure the last Chrome version is used, as they change their web sockets implementation as well.
We are using Tigase 5.2.0 final for our chat server.
But when I try to create a new Websocket connection through JS
it is failed with error in JS console:
WebSocket connection to 'ws://chat.quickblox.com:5290/' failed: Connection closed before receiving a handshake response
It's strange, because this bug is reproduced only with some Mac OS users on Chrome. For Win and Ubuntu browsers this works. Also it is correct when I use the incognito mode for Chrome or use test example from websocket oficial site
Could you try to help me? Any ideas. I don't think that it is a browser trouble. Maybe need to do some changes in tigase settings for it?
Thanks a lot. I will try this one.
What you need to provide is as resolution of network name to IP. SO for example
S1 hosts DomainS1_1, DomainS1_2
S2 hosts DomainS2_1, DomainS2_2
Now there is a client client1@DomainS1_1 which sends message to client2@DomainS2_2.
S1 needs to know where to send the message and connect to such server, which entails resolution of DomainS2_2. This could be as simple as entry in /etc/hosts (i.e. DomainS2_2 192.168.1.2).
Just would like to elaborate the scenario to make things simpler and it would be great if you could please help in this regards.
Following is a call flow to describe the use case : [ C1 : XMPP client1 , S1 : Tigase XMPP Server 1 , S2 : Tigase XMPP Server 2 and C2 : XMPP Client 1]
C1 <== ws/wss==> S1 <===bosh==> S2 <== ws/wss ==> C2
We have been able to successfully complete the C1 to S1 communication over ws (websocket). But now struggling in S1 to S2 communication.As mentioned in the tigase docs & blogs, s2s comm. is by default enabled and thus it would be great if you could comment/help in this regards. Following are few of my interpretation based upon the blogs/docs and please correct me if I am wrong.
In order to execute the s2s communication, S1 should first know/identify that the xmpp packet needs to be forwarded to S2 using s2s communication.There could be 3 possibilities
(1) C1 tells S1 by putting S2 domain in the to header of xmpp packet to = user2@S2.com ( just an example). S1 looks for this in virtual hosts and if not found forwards it to S2 ( after DNS resolution)
(2) S1 is pre-configured to forward the xmpp packets to S2 always ( this looks to be remote possibility)
(3) Combination of both the above possibilities
Please let me know your comments.
In addition, as mentioned earlier , we are running S1 & S2 in two PCs in the same LAN/network. Hence using ip address directly instead of fqdn of the servers.
Thanks in advance
Thanks and Regards
Just would like to add that , as a part of the POC we are using two PCs in the same LAN/network and hence are using ip addresses directly
Matthew M wrote:
Hi Tigase Team,
I wonder is it possible for Tigase server connecting to other public XMPP servers or services? For example, is it for a Tigase user to add a Gtalk or Facebook user as a buddy and chat with them? Is there any settings on Tigsae server that should be adjusted to allow this?
Many thanks in advance!
I am also facing the same issue. In my use case I want to use tigase server to tigase server communication. I know from the documentation/blogs that it is possible via s2sConnectionManager logic of tigase. Having said that, please let me know , if there are any specific configuration changes required. In addition, just wanted to share that I am using direct ip address instead of using FQDN for the servers.
Thanks in advance
We are using Converse.js. I hope its still not supporting the XEP-0184 standards.
Which makes me wonder what does a company like whatsapp do? I assume they only do this once on program registration and on contact page refresh. But it's pretty crazy if the results take few days to return.
You did not specify what kind of errors you receive. From the above message/stanza we can conclude that clustering is working.
Thank you for reply and support.
Thanks for the reply. The time on the machines is in sync with a common NTP server through the internet.
I noticed that despite these errors the admin of the domain is getting a message stanza from the session manager indicating a successful connection in the cluster nodes.
Cluster node tigase1.cloud.com connected to tigase2.cloud.com (Thu Nov 20 15:47:30 IST 2014)
Can I consider this as a successful data connection ?
As per error:
Remote hostname not found in local configuration or time difference between cluster nodes is too big.
Please make sure time on the machines is in sync.
I am trying to setup my first Tigase cluster using two tigase nodes on the same network.
I have added --cluster-mode=True to enable clustering and have done nothing else in the configuration. "
I have noted that the cluster_nodes table in MySQL contains the hostname and password entries for the two nodes.
I have also setup the right DNS configuration through the /etc/hosts filename.
I have attached the configuration file and the console log.
I shall also attach the configuration file and console log from the other machine as a comment to this post.
I partially answered the question in other forums topic:.
I think the best way to do it would be to create a custom protocol (XEP) which allows you to upload to the server all your contacts (or just phone numbers) and let the server run the DB search. Once the search is completed, the server would return a list of contacts found in DB. Then there is another question - what to do now? You can add all the contacts to your roster but in order to see their presence you need to request presence subscription for each contact. This is all doable, but requires some work.
For a few reasons I do not think XEP-0055 is the best choice for the task. It would be too slow querying the server for each contact. A better approach is to upload all contacts to the server, then the server runs a query and returns results when they are ready.
We worked with a company which did a similar thing. The experience from this, is that it is generally quite slow and takes long time to return results. Especially if you have thousands or millions users and each has hundreds contacts on their phone. So what they did, was, each user (a mobile client) submitted user's contacts to the server and server created a long queue for the contact's search in the DB. For a large number of users, getting results may take a few days. Any optimizations you can make for the DB query are very dependent on the DB engine you use.
We are looking to hire few devs for developing our tigase server Components : https://www.odesk.com/jobs/Create-component-for-Tigase-XMPP-server_~015b59965c1fb71122
What's the best place to look for them? We can hire them for this fixed cost project on or off odesk.
So whats the ideal way to find out if my phone contact is a registered user on the server?
I am looking to sync all my phone contacts with my tigase XMPP server. I initially planned to use XEP-0055 but tigase server doesn't support it. The below code throws an "unsupported feature exception"
UserSearchManager search = new UserSearchManager(connection);
Form searchForm = search.getSearchForm( connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
So what's the best way (or any way!) to check if the contacts of my phone are registered users on my server?
All I need to know is if my contacts exist on the server.
I have been trying to solve this problem for last two weeks.
The XEP is not supported and we are hesitant to add it, because it generates lots of security and privacy issues. Even though the XEP is implemented on some other XMPP Servers, it is almost never activated on any public service running on these servers.
I understand that it might be useful and desired on some deployments, but, to be honest it has never been demanded before.
We provide software products, consulting and custom development servicesTigase, Inc.
Follow us on: