Giter Site home page Giter Site logo

tssajo / ipe Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dimiro1/ipe

1.0 1.0 0.0 304 KB

An open source Pusher server implementation compatible with Pusher client libraries written in GO

Home Page: http://dimiro1.github.io/ipe

License: MIT License

Ruby 2.08% HTML 0.91% Go 92.20% JavaScript 4.81%

ipe's Introduction

Quality code report

IPÊ

This software is written in Go - the WYSIWYG lang

Why I wrote this software?

  1. I wanted to learn Go and I needed a non trivial application;
  2. I use Pusher in some projects;
  3. I really like Pusher;

Features

  • Public Channels;
  • Private Channels;
  • Presence Channels;
  • Web Hooks;
  • Client events;
  • Complete REST API;
  • Easy instalation;
  • A single binary without dependencies;
  • Easy configuration;
  • Protocol version 7;
  • Multiple apps in the same instance;
  • Drop in replacement for pusher server;

Download pre built binaries

You can download pre built binaries from the releases tab.

I do not have a Windows machine, so I can only distribute binaries for amd64 linux and amd64 darwin.

Building

$ go get github.com/dimiro1/ipe

or simply

$ go install github.com/dimiro1/ipe

How to configure?

The server

{
	"Host": ":8080",                    // Required
	"SSL": false,                       // Required but can be false
	"SSLHost": ":4433",                 // Required if SSL is true
	"SSLKeyFile": "A key.pem file",     // Required if SSL is true
	"SSLCertFile": "A cert.pem file",   // Required if SSL is true
	"Apps": [                           // Required, A Json arrays with multiple apps
		{
			"ApplicationDisabled": false,               // Required but can be false
			"Secret": "A really secret random string",  // Required
			"Key": "A random Key string",               // Required
			"OnlySSL": false,                           // Required but can be false
			"Name": "The app name",                     // Required
			"AppID": "The app ID",                      // Required
			"UserEvents": true,                         // Required but can be false
			"WebHooks": true,                           // Required but can be false
			"URLWebHook": "Some URL to send webhooks"   // Required if WebHooks is true
		}
	]
}

Libraries

Client javascript library

var pusher = new Pusher(APP_KEY, {
  wsHost: 'localhost',
  wsPort: 8080,
  wssPort: 4433,    // Required if encrypted is true
  encrypted: false, // Optional. the application must use only SSL connections
  enabledTransports: ["ws", "flash"],
  disabledTransports: ["flash"]
});

Client server libraries

Ruby

Pusher.host = 'localhost'
Pusher.port = 8080

PHP

$pusher = new Pusher(APP_KEY, APP_SECRET, APP_ID, DEBUG, "http://localhost", "8080");

NodeJS

var pusher = new Pusher({
  appId: APP_ID,
  key: APP_KEY,
  secret: APP_SECRET
  domain: 'localhost',
  port: 80
});

Logging

This software uses the glog library

for more information about logging type the following in console.

$ ipe -h

When use this software?

  • When you are offline;
  • When you want to control your infrastructure;
  • When you do not want to have external dependencies;
  • When you want extend the protocol;

Contributing.

Feel free to fork this repo.

Pusher

Pusher is an excelent service, their service is very reliable. I recomend for everyone.

Where this name came from?

Here in Brazil we have this beautiful tree called Ipê, it comes in differente colors: yellow, pink, white, purple.

I want to see pictures

Author

Claudemiro Alves Feitosa Neto

LICENSE

Copyright 2014, 2015, 2016 Claudemiro Alves Feitosa Neto. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.

ipe's People

Contributors

dimiro1 avatar jweslley avatar orthographic-pedant avatar sj26 avatar tssajo avatar

Stargazers

 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.