HOOPS Communicator Server

Topic Contents [Hide]Topic Contents [Show]
  1. Connection to CM4D and Results Databases
  2. Supported Platforms
  3. SSL Certificate and Private Key Files
  4. HOOPS Server Configuration Settings
    1. HOOPS Server Host Name
    2. HOOPS Server Ports
    3. HOOPS Model Directory
    4. HOOPS SSL Certificate and Private Key Files
  5. Troubleshoot Incorrect Host Name

HOOPS Communicator is the third-party software facilitating the streaming of 3D model data from CM4D to the HOOPS Web Viewer integrated in CM4D Peruse for client-side rendering.

Internet speed impacts the loading/rendering of the 3D model because the model is streamed to the client and rendered on the client machine. Server-side rendering (not available) would require very expensive server hardware.

Connection to CM4D and Results Databases

3D CAD models associated to a Routine in CM4D are converted to a stream cache format. The model information is stored in the database and the model stream cache files are stored in a Model Directory on the HOOPS Communicator server. The models are then streamed from the HOOPS server to clients and rendered by the HOOPS Web Viewer on the client-side in CM4D Peruse. This requires the end client, the machine running CM4D Peruse in a web browser, to do the actual rendering the 3D model when it is loaded into the web viewer in CM4D Peruse.

The HOOPS Communication Server (HCS) connects to CM4D via the CM4D Results database connected through CM4D Peruse. When a model is requested by a client, the HCS checks the Model Directory for the requested model. From that directory, it streams the cache file to the client for rendering. The model directory is populated by CM4D via the StreamCacheSmith Service and CM4D Results database. The CM4D StreamCacheSmith Service must be installed on same machine as the HOOPS Communicator Server. Images transferred to the Results database cannot contain User Variables in the Image Path.

See the topic 3D Models in CM4D Applications for more information on how 3D models are handled by CM4D.

Supported Platforms

Visit the HOOPS Communicator documentation on the TechSoft3D website to check the latest information on Supported Platforms.

SSL Certificate and Private Key Files

The HOOPS Communicator Server, which is installed along with CM4D Peruse, also requires certification. However, HOOPS is a third-party SDK which does not utilize the Windows Certificate store and therefore requires a separate Certificate File and Private Key File.

See the topic SSL Certificates for details on creating/exporting certificates and files.

HOOPS Server Configuration Settings

Following installation, you can modify the HOOPS configuration settings (e.g., the file path of the certificate files) if necessary. Refer to the following sections for details about some of the primary-interest settings configured as part of the HOOPS server installation:

Use caution changing any of these files, as it may result in other issues if not done correctly. In most cases, uninstalling and reinstalling Peruse/HOOPS Server is recommended to ensure the proper values are used.

Browse to the install location of HOOPS Communicator. By default, a folder labeled 'HC' can be found at the root level on the same drive as the Peruse installation.

HOOPS Communicator Installation Folder

HOOPS Server Host Name

The host name refers to the name of the server where the HOOPS Communicator service is installed. This should be the same string used for the SSL certification.

This value is entered in the 'HOOPS Hostname' field during the Peruse installation. See here for the correlating step.

.\HC\Config.js

    // A specific hostname to use for spawned stream-cache servers.
    // This field can be used to generate endpoints containing a public DNS or IP address.
    // If not specified, the system will attempt to determine an appropriate value.
    // This value has no effect when using proxying.
    spawnWebsocketHostname: "myhoopsserver.company.local",

.\HC\server_config.js .\HC\quick_start\server_config.js .\HC\server\node\Config.js

    // The hostname to use for broker-connection stream-cache servers or when enabling SSL.
    // This field can be used to generate endpoints containing a public DNS or IP address.
    // If not specified, the system will attempt to determine an appropriate value.
    // This value has no effect when using proxying unless SSL is enabled.
    // When SSL is enabled, this hostname must be verifiable against the supplied
    // certificate chain.

    publicHostname: "myhoopsserver.company.local",

.\Applied Tech Systems\ATS CM4D Peruse\ATS CM4D Peruse\appsettings.json

"Configuration": {
                          "webApi":  "https://SERVER.domain.local:2000/",
                          "ATSSecurityManager":  "https://server.domain.local:5000",
                          "clientid":  "feffadae-fc78-44f9-81c1-927e1d7faa62",
                          "scope":  "openid profile 09b6d6a4-e3b6-488c-8773-07b3f040b017\\\\PeruseAPI SecurityManager.SecuritySettingsScope 22f0e3a0-9004-4945-88e6-86caaa9db317\\\\ATS.LicensingServer offline_access",
                          "version":  "25.2.23285.1",
                          "BasePath":  "",
                          "buildNumber":  "20230807.1",
                          "data":  {
                                       "HoopsEndpoint":  "wss://myhoopsserver.company.local:11182",
                                       "heartbeatrate":  10000

HOOPS Server Ports

This refers to the ports used by the HOOPS Communicator service.

.\HC\Config.js | .\HC\server_config.js  .\HC\quick_start\server_config.js .\HC\server\node\Config.js

var config = {
    // The port for the spawn-server REST and proxy calls. Note that setting this to 0 or null will disable the
    // the spawn-server, which may help with troubleshooting.

    spawnServerPort: 11182,

<...>

    ////////////////////////////////////////////////////////////////////////////////
    // The following are configuration values for the optional http file server. Disable this http server if you
    // are running your own.
    ////////////////////////////////////////////////////////////////////////////////

    // The port used by the http file-server. Set to null or 0 to disable the http server
    fileServerPort: 11180,

.\Applied Tech Systems\ATS CM4D Peruse\ATS CM4D Peruse\appsettings.json

"Configuration": {
                          "webApi":  "https://SERVER.domain.local:2000/",
                          "ATSSecurityManager":  "https://server.domain.local:5000",
                          "clientid":  "feffadae-fc78-44f9-81c1-927e1d7faa62",
                          "scope":  "openid profile 09b6d6a4-e3b6-488c-8773-07b3f040b017\\\\PeruseAPI SecurityManager.SecuritySettingsScope 22f0e3a0-9004-4945-88e6-86caaa9db317\\\\ATS.LicensingServer offline_access",
                          "version":  "25.2.23285.1",
                          "BasePath":  "",
                          "buildNumber":  "20230807.1",
                          "data":  {
                                       "HoopsEndpoint":  "wss://myhoopsserver.company.local:11182",
                                       "heartbeatrate":  10000

HOOPS Model Directory

This refers to the file location where the 3D model stream cache files are stored by CM4D StreamCacheSmith. These files are accessed by HOOPS via CM4D Peruse for client-side rendering.

Do not modify, as this is the path used by the CM4D StreamCacheSmith Service and cannot be altered for the service.

 .\HC\server_config.js  .\HC\quick_start\server_config.js

    // Array of directories that contain the models available to the stream-cache servers.
    // Any relative directories are relative to 'communicatorDir'
    // Note that SCS models are not delivered by the spawn server, thus the paths are not included
    modelDirs: [
        "c:/temp/models"
    ],

HOOPS SSL Certificate and Private Key Files

This refers to the SSL certification files selected during the Peruse installation. These paths should only be modified if you want to update/change your certificate files without reinstalling Peruse. 

.\HC\server_config.js |  .\HC\quick_start\server_config.js |  .\HC\server\node\Config.js

    ////////////////////////////////////////////////////////////////////////////////
    // The following values control SSL settings
    ////////////////////////////////////////////////////////////////////////////////   
   
    // Determines the full-chain SSL certificate file. This must be set when enabling any
    // component for SSL.
    sslCertificateFile: "C:\\Folder\\server01.peruse.pem",

    // Determines the SSL private-key file. This must be set when enabling any component for SSL.
    sslPrivateKeyFile: "C:\\Folder\\server01.peruse.key",

 HOOPS server_config.js - Certificate and Key File paths.

Troubleshoot Incorrect Host Name

When running Peruse and the 3D Model does not load in the web viewer, you may see the following console error: [Browser] can't establish a connection to the server at wss://myhoopsserver.company.local:11182/.

Note the server and port displayed in the wss:// string. One possible reason for this error could be that an incorrect server name or port number was entered during installation.

To manually fix an incorrect host name/port, edit the Hostname or Hoops Endpoint string in the files detailed in the HOOPS Server Configuration Settings section above. Restart the ATS Peruse and HOOPS Communicator services.

Can we improve this topic?