Git Product home page Git Product logo

alljoyn's Introduction

AllJoyn

Installation

npm install alljoyn

Usage

var alljoyn = require('alljoyn');

// create a bus and sessionId
var bus = alljoyn.BusAttachment('myAppName');
var sessionId = 0;

// create interface description
var interface = alljoyn.InterfaceDescription();

// create listener
var listener = alljoyn.BusListener(
  function(name){
    console.log("FoundAdvertisedName", name);

    //join session, sessionId is used to send messages.
    sessionId = bus.joinSession(name, portNumber, 0);

  	// send a signal message
    object.signal(null, sessionId, interface, "Chat", "Hello, I am a client!");
  },
  function(name){
    console.log("LostAdvertisedName", name);
  },
  function(name){
    console.log("NameOwnerChanged", name);
  }
);

// create the interface
bus.createInterface('org.alljoyn.bus.samples.chat', interface);

// add a signal to the interface, specifying what kind of message we will accept
// s = string, d = number, b = boolean
interface.addSignal("Chat", "s",  "msg");

// register the listener on the bus
bus.registerBusListener(listener)

// initialize the bus
bus.start();

// create the BusObject that will send and receive messages
var object = alljoyn.BusObject("/chatService");

// start listening
bus.connect();

// discover devices with prefix 'org.alljoyn'
bus.findAdvertisedName('org.alljoyn.bus.samples.chat')

// create a SessionPortListener for session changes
var portListener = alljoyn.SessionPortListener(
	function(port, joiner){
  		console.log("AcceptSessionJoiner", port, joiner);
  		
  		// return true to accept the new session member
  		return true;
	},
	function(port, sessId, joiner){
    	sessionId = sessId;
	  	console.log("SessionJoined", port, sessionId, joiner);
	}
);

// add the chat interface to the BusObject
object.addInterface(interface);

// register signal handler for BusObject
// this function will be called for each received message
bus.registerSignalHandler(object, 
	function(msg, info){
  		console.log("Message received: ", msg, info);
	},
	interface, "Chat");

Currently Supported Operating Systems

  • Mac OSX
  • Linux (Ubuntu 14.04 tested)

License

ISC

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.