Reconsider your goal. The idea that something that runs in one place, continuously (gateway scope), should be able to push information into a user interface (Perspective scope), is a design pattern from single-user HMI environments that utterly fails in a multi-user environment like Ignition.
In a single user HMI, everything runs, or not, all together, and there is only one user interface, and it is always present.
In a multi-user SCADA environment, a core runs all of the time and user interfaces run or not as needed by users. There can be times when there is no user interface running at all, while the core carries on. The user interfaces are also distributed--they run, partly or entirely, in different computers from the core.
This distributed environment means it is difficult to do something in the core and just hand it to "the" user interface. There needs to be some method to distribute the information. In Ignition, the primary tool to distribute information is the tag. Data placed in tags is automatically distributed to user interfaces that are interested, where "interest" means they have a tag binding.
So, for your use case, you probably want a dataset memory tag. The gateway script that produces the dataset when appropriate simply writes it to the tag. Your user interface, when running, will receive that tag's value when it opens, and receive updates as they arrive.
The gateway script would also write the parts of the dataset that matter to OPC tags, as that is something that runs in the core.
There are messaging techniques that can be used for rare cases, but they have much more overhead than tags, and are a maintenance nightmare. Don't go there until you have to.