Roam.ai Docs
HomeContactDashboard
  • Introduction
  • Getting Started
    • Key Concepts
  • Frameworks
  • Android
    • Quickstart (Android)
    • Pub/Sub Locations (Android)
    • SDK Methods (Android)
      • SDK Configuration (Android)
      • Get Current Location (Android)
      • Update Current Location (Android)
      • Update Location When Stationary (Android)
      • Trip v1 SDK Methods (Android)
      • Trip v2 SDK Methods (Android)
        • Create Trip (Android)
        • Update Trip (Android)
        • Start Quick Trip (Android)
        • Start Trip (Android)
        • End Trip (Android)
        • Pause Trip (Android)
        • Resume Trip (Android)
        • Sync Trip (Android)
        • Get Trip (Android)
        • Get Active Trips (Android)
        • Get Trip Summary (Android)
        • Subscribe to Trip (Android)
        • Delete Trip (Android)
    • Utility Methods (Android)
    • Troubleshooting (Android)
    • Changelog (Android)
  • iOS
    • Quickstart (iOS)
    • Pub/Sub Locations (iOS)
    • SDK Methods (iOS)
      • SDK Configuration (iOS)
      • Get Current Location (iOS)
      • Update Current Location (iOS)
      • Update Location When Stationary (iOS)
      • Trips v1 SDK Methods (iOS)
      • Trips v2 SDK Methods (iOS)
        • Create Trip (iOS)
        • Update Trip (iOS)
        • Start Quick Trip (iOS)
        • Start Trip (iOS)
        • End Trip (iOS)
        • Pause Trip (iOS)
        • Resume Trip (iOS)
        • Sync Trip (iOS)
        • Get Trip (iOS)
        • Get Active Trips (iOS)
        • Get Trip Summary (iOS)
        • Subscribe Trip (iOS)
        • Delete Trip (iOS)
    • Utility Methods (iOS)
    • Troubleshooting (iOS)
    • Changelog (iOS)
  • React Native
  • Flutter
  • PRODUCTS
  • Tracking (BETA)
  • Geofencing
  • Trips
  • APIs
    • Authorization
    • Users API
      • Create User API
      • Get User API
      • Update User API
    • Locations API
      • Get Locations API
      • Get Stop Locations API
    • Insights API
      • Get User POIs API
      • Get User Home Location API
      • Get User Work Location API
    • Trips v1 API
      • Create Trip API v1
      • Get Trip API
      • Update Trip API v1
      • Delete Trip API v1
      • Trip Summary API
      • Export Trip Summary as GPX
    • Trips v2 API
      • Create Trip API
      • Get Single Trip API
      • Get Multiple Trips API
      • Update Trip API
      • Control Trip API
        • Start Trip API
        • Pause Trip API
        • Resume Trip API
        • End Trip API
      • Get Trip Summary API
      • Export Trip API
      • Delete Trip API
    • Geofencing API
      • CREATE Geofence API
      • GET Geofence API
      • UPDATE Geofence API
      • DELETE Geofence API
    • Events API
      • Get Events
      • Trip Events
    • Nearby API
      • Get Nearby User API
      • Get Nearby Geofence API
    • Moving Geofence API
      • Create Moving-Geofence API
      • Update Moving-Geofence API
      • GET Moving-Geofence API
      • Delete Moving-Geofence API
    • User Groups API
      • Create Group API
      • Get User Group by ID
      • Get User Group List
      • Add Users to Group API
      • Update Group API
      • Find Nearby Users from Group
    • Query with Metadata
  • WEBHOOK
    • Webhook
    • Slack Integration
  • LIBRARIES
    • Javascript Library
    • Go Library
    • Python Library
Powered by GitBook
On this page
  • Installation
  • Methods
  • Example Usage
  • Need Help?

Was this helpful?

Export as PDF
  1. LIBRARIES

Go Library

The Golang backend library for Roam Location Subscription is used to subscribe to user's locations at a project level. It can also be used to subscribe to the locations of a single user.

roam-go supports subscription to the following location data:

  • Specific user

  • All users of a group

  • All users of the project

Installation

You can install our Golang library as mentioned below.

go get -u github.com/roam-ai/roam-go/roam

Methods

Subscribe to a single user

You can use the SDK to subscribe to single user's location and listen to it. You have to pass the userID which our Mobile SDKs return when a user is created.

userSubscription , err := roam.NewUserSubscription("apikey","userID")

Example Usage

package main

import (
	"fmt"
	"github.com/roam-ai/roam-go/roam"
	"time"
)
func main() {
    // initialization
    subscription , _ := roam.NewUserSubscription("apikey","userID")

    // Declaring handler function
    var handler roam.MessageHandler = func(userID string , payload []byte){
        // logic
	}

    // start subscription
    subscription.Subscribe(handler)
}

Subscribe to a group:

You can also use the SDK to subscribe to a user group and listen to their location updates. You can get the group_id from our developer API for user grouping and use the group id when creating the client instance to listen to location at user group level.

groupSubscription , err := roam.NewGroupSubscription("apikey","groupID")
package main

import (
	"fmt"
	"github.com/roam-ai/roam-go/roam"
	"time"
)
func main() {
    // initialization
    subscription , _ := roam.NewGroupSubscription("apikey","groupID")

    // Declaring handler function
    var handler roam.MessageHandler = func(userID string , payload []byte){
        // logic
	}

    // start subscription
    subscription.Subscribe(handler)
}

Unsubscribe

At any point, if you wish to unsubscribe from location updates, use the code below:

subscription.Unsubscribe()

Handler Function

While calling Subscribe method on subscription, you will need to pass a handler func as parameter. Handler func should have userID of type string and payload of type []byte and will be invoked on every location update received.

    var handler roam.MessageHandler = func(userID string , payload []byte){
        // logic
	}

    subscription.Subscribe(handler)

Example Usage

You can think of this library as a wrapper around our REST API which needs your API key for authorization. It works at the project level and is fairly simple to use:

  • Create an instance of a subscription with your API key.

  • Define your custom callback function and pass it with the subscribe() method, which will be executed on every location received from the server.

  • To stop receiving data, call the unsubscribe() method. Check out this example code:

package main

import (
	"fmt"
	"github.com/roam-ai/roam-go/roam"
	"time"
)
func main() {
    // initialization
    subscription , _ := roam.NewProjectSubscription("apikey")

    var handler roam.MessageHandler = func(userID string , payload []byte){
        fmt.Println(userID)
        fmt.Println(string(payload))
	}

    subscription.Subscribe(handler)
}

Need Help?

PreviousJavascript LibraryNextPython Library

Last updated 2 years ago

Was this helpful?

If you have any problems or issues regarding our SDK, feel free to create a github issue or submit a request on .

Roam Help
LogoGitHub - roam-ai/roam-go: Go Pub/Sub Library; GoLang library to subscribe to realtime location updates from Roam.ai's location SDKs.GitHub
roam-go