← Back

ofxSearchNetworkNode

github.com/nariakiiwatani/ofxSearchNetworkNode · @nariakiiwatani
OF 0.10 Web/Networking

Searching and listing up nodes on networks.

12 1 Last commit 6y ago Created 9y ago

README

日本語版はこちら

ofxSearchNetworkNode



Searching and listing up nodes on networks. You no longer need to check nor type ip addresses.

Setup

ofxSearchNetworkNode search;

// (optional)
// target IP addresses for finding nodes.
// by default, valid broadcast addresses are set automatically.
// you can set not only broadcast addresses but also unicast addresses manually.
// addresses should be separeted by commas.
search.setTargetIp("192.168.0.255,10.0.0.1");

// (optional)
// request peers to keep sending heartbeat messages.
// if you didn't hear from a peer during a certain time, the node would be marked as "lost".
// if you don't need to check connection lost, set heartbeat to false. default is true.
search.setRequestHeartbeat(false);

// (optional)
// if you want to make your node private, use secret mode.
// in secret mode, nodes have different keys cannot be shown.
// though setting group names works almost same as secret mode,
// using secret mode is recommended because you can keep your group names common and simple.
search.enableSecretMode("secret_key");
// search.disableSecretMode();

// setup your node with a port and a name
search.setup(8000);
// with setName, you can set a name of this node. default is hostname of the machine.
// with setGroup, you can set groups to belong to.
// you can set multipul groups by comma separated string.
// nodes in different group won't be shown each other.

// broadcast a request message to search nodes.
// it's enough to send request once (usually at startup).
// because if an other node appeared on the network even after your request
// she shall also broadcast a request message, so you will receive it then you can find her.
// in case your network often loses packets, there is no problem for requesting multipul times or even continuously.
search.request();
// provided group name(s) as an argument, you can find nodes belonging to certain group(s).
// you can even search groups that your node "don't" belong to.
// search.request("awesomegroup");


Getting nodes



You can get a list of existing nodes by using getNodes.

const std::map<string, ofxSearchNetworkNode::Node> &nodes = search.getNodes();


or you can also notice from event objects

ofAddListener(search.nodeFound, this, &ofApp::onFoundNode);
void ofApp::onFoundNode(const std::pair<std::string, ofxSearchNetworkNode::Node> &node) {
	cout << "new node : " << node.first << "," << node.second.name << "(" << node.second.groups << ")" << endl;
}


License

MIT

Get this addon

HTTPS
SSH