A few months ago, we have released a node library to easily add real-time collaboration to any HOOPS Communicator based application. Since then quite a few new features have been added to the Collaboration server:
A new plugin architecture that makes it easier to extend the functionality of the library
Support for Persistent Room Data
More robust support for geometry creation
Ability to disable syncing for cameras and selection
Two plugins for displaying user-avatars (see above GIF) and support for the new textbox class.
The collaborator demo is effectively a screen mirroring application so you will need two screens (or two browser tabs) viewing the same model. You can also check out the Collaborator Demo as part of our cloud demo suite.
I want to download the code package from the GitHub connection in Collaborator Demo, but GitHub has been unable to open it. Excuse me, is the link invalid? It is also possible that I am unable to access foreign websites. If the link has not expired, please let me know.
The version techsoft3d/Collaborator is an older version and has largely been superseded by techsoft3d/ts3d-hc-collabServer. Besides the core mirroring feature, the latter version includes camera synchronization and basic chat functionality — in addition to a more robust and familiar model browser.
It looks like based on your screenshot, you were able to get ts3d-hc-collabServer up and running. Is this not the case?
At first, I was running ts3d hc collabServer.
Later, when I saw the GitHub link in Collaborator Demo, I thought techsoft3d/Collaborator was the latest.Then I can run normally.
Yes, this should be possible. The collaboration demo is using a 3rd party application called Socket.IO for the communicaton features of the room. You will have to do the necessary research to implement the desired functionalities.
If not, the URL may not be correct. On that note, the octet 270 seems to be out of range as I believe in an IPv4 address, the values are range-bound to 0 to 255.
If there have been no other changes to the code, I would expect mirroring to work given that different users are being displayed in the viewer.
One follow-up question is regarding the IPv4 address you provided (http://192.270.1.25:5655). Is this correct? The octet 270 is beyond the range of 0 to 255.
The IPv4 address was randomly written by me in the post, and in my code, it is the address where I run the SoketIo service.This demo is actually running locally on my computer.
I recorded a short video in the compressed file, and in the video, I can see the users. Users can send and receive messages, but the model scene cannot be mirrored, and the browser console does not report any errors. May I ask which part of the code the mirroring depends on for execution? I would like to check if I have made any changes to the code that executes the mirroring . 20250113_110707.zip (566.3 KB)
Please see the function handleMessage(message) in hcCollab.js. Also, please review the notes/README section of the GitHub post for additional context that may be relevant to your application.
Given that you’ve identified that the if statement is returning early, perhaps take a look at this function for clues:
async function processCallbacks(message,send =false) {
for (let i=0; i<messageReceivedCallbacks.length; i++) {
let callback = messageReceivedCallbacks[i];
if (!await callback(message,send)) {
return false;
}
}
return true;
}
Also, the function hcCollabMessageReceived looks markedly different than the original so that could be having an effect. It’s curious that in your implementation, case "initialState": is empty.
On that note, if your objective is to fully customize the hcCollab project, we recommend the approach of starting with the base hcCollab project and then start introducing changes more gradually. This will make it easier to debug — moreso than sharing screenshots of code snippets.