Giter Club home page Giter Club logo

ofxsocketio's Introduction

ofxSocketIO

Description

ofxSocketIO is an ofxaddon that wraps socket.io-client-cpp. It is still under active development.

Installation

ofxSocketIO provides the compiled libraries for osx and linux64 out of the box. If you have to compile socket.io-client-cpp yourself, follow the installation instructions.

TLS/SSL

socket.io-client-cpp compiles with SSL support by default. However, we had issues with certificates and thus removed the SSL support. The provided libs (osx and linux64) does not support TLS/SSL.

FYI, we simply removed the find_package(OpenSSL) call in the CMakeLists.txt.

Usage

Take a look at our example.

You'll need a socket.io server to communicate with. (check out our test server)

API

ofxSocketIO

setup(std::string& address)

→ Creates a websocket connection with the address remote.

bindEvent(ofEvent<ofxSocketIOData&>& event, std::string eventName)

→ Binds an ofEvent to string trigger. Typically, you'd do:

std::string eventName = "server-event";
socketIO.bindEvent(serverEvent, eventName);
ofAddListener(serverEvent, this, &ofApp::onServerEvent);

void ofApp::onServerEvent (ofxSocketIOData& data) {
  // Will be triggered when the server emits a "server-event" event
  // See the `ofxSocketIOData` API on how to use the `data` parameter here
}
getStatus()

→ Returns the current status. Either connected, closed, reconnecting or errored.

connectionEvent

→ An ofEvent triggered when the socket is connected to the server

notifyEvent

→ An ofEvent triggered when the socket is connected, closed, errored, or when the socket is trying to reconnect. Comes with std::string status parameter.

emit(std::string& eventName, std::string& data)

→ Emits an event with the specified event name and a string parameter (you'll have to cast your non-string datas).

closeConnection()

→ Force closes the socket.

ofxSocketIOData

getStringValue(std::string key)

→ Get the std::string value for the specified key.

getIntValue(std::string key)

→ Get the int value for the specified key.

getFloatValue(std::string key)

→ Get the float value for the specified key.

getDoubleValue(std::string key)

→ Get the double value for the specified key.

getBoolValue(std::string key)

→ Get the bool value for the specified key.

getVector()

→ Get the raw vector if the message is not a map.

Troubleshooting

ping pong

You may experience issues with 'ping' and 'pong' events, as they are used internally by socket.io:

- `ping`. Fired when a ping packet is written out to the server.
- `pong`. Fired when a pong is received from the server.

source

Credits

ofxSocketIO is maintained by Soixante circuits and hugohil.

It exists thanks to the great work of the socket.io-client-cpp contributors.

Finally, these folks has made some usefull contributions to ofxSocketIO:

License

MIT

ofxsocketio's People

Contributors

hugohil avatar sy1vain avatar mamoroom avatar

Watchers

 avatar

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.