Git Product home page Git Product logo

messagepassingforrainmeter's Introduction

Message Passing for Rainmeter

A websocket plugin for Rainmeter to allow communication with other programs such as Wallpaper Engine. Example of it in action: https://streamable.com/17mmz

Current State:

  • Full support for multiple websocket addresses and multiple connections on each address
  • On websocket Open, Close, and Message command options (Can even use dynamic variables)
  • Get connected client count from measure's decimal value

Future Additions

  • Support for changing Wallpaper Engine layout (Will either require waiting till Wallpaper Engine supports external plugins or admin rights)
  • Support for Video and Scene layout communication (Will likely require waiting till Wallpaper Engine supports external plugins)
  • Support for changing the port
  • Readd support for every message also being sent on the / channel

If you would like you can donate to support the plugin here

Measure Options

  • Plugin=MessagePassing - The name of the plugin is MessagePassing, any MessagePAssing measure will have the value of the number of clients connected to it
  • Name - Name of the service to run, adds / to the beginning if you do not.
    I recommend using unique names if you only want your info. So a name of tjMusicInfo would get a url of ws://127.0.0.1:58932/tjMusicInfo in the program you are communicating to
  • Port - Port to use, is ignored right now and is always 58932
  • OnOpen - A rainmeter bang to execute when connection is first made
    Note: Will not fire if connection already existed and was opened when your websocket is created
  • OnClose - A rainmeter bang to execute on connection being closed Note: Only fires with the connection is closed, does not fire if it never opens
  • OnMessage - A rainmeter bang to execute whenever a message is received with your service name
    Note: Add $Message$ to the command to have it be replaced with the message contents

messagepassingforrainmeter's People

Contributors

tjhrulz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

sleepyynet

messagepassingforrainmeter's Issues

Add OnMessage Option?

Don't think it is really needed but I guess would be useful for making back and forth communication easier.

OnOpen does not fire if path already exists and is open when a new measure is made

This one is probably gonna stick around for a while.
If a websocket connection with the same Name option is already opened and a new rainmeter measure is made its OnOpen will not fire as the plugin is already open. I could add a check if it is already open and fire right away but then if dynamicVariables is on it will fire the OnOpen on every update cycle.
I might be able to fix this with some careful checking but given the low likelihood of that happening in cases where it would make a difference it is low priority.

For now just always use a different Name option for each websocket if you need OnOpen to always fire.

Add functional Port option

I don't think I am gonna implement this for the first release as in order to keep things nice I am going to want to have multiple servers running for this.

Example.ini uses wrong/non-functioning port

In the Example.ini included in MessagePassing_0.5.1.rmskin, the port number in the measure's options is as follows:

Port=37589

The plugin at this point does not allow changing ports, so the only working port, I believe, should be there so as to not confuse new users when they think the plugin isn't working:

Port=58932

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.