Skip to content
This repository was archived by the owner on Apr 22, 2022. It is now read-only.

Repository files navigation

Go Report Card

Try browsing the code on Sourcegraph!

IPÊ

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

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;
  4. I was using Pusher on some projects behind a firewall;

Features

  • Public Channels;
  • Private Channels;
  • Presence Channels;
  • Web Hooks;
  • Client events;
  • Complete REST API;
  • Easy installation;
  • 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.

Building

$ go get github.com/dimiro1/ipe

or simply

$ go install github.com/dimiro1/ipe

Building from a local checkout

$ git clone https://github.com/dimiro1/ipe.git
$ cd ipe/cmd
$ go build -o ipe

How to configure?

The server

---
host: ":8080"profiling: falsessl:
enabled: falsehost: ":4343"key_file: "key.pem"cert_file: "cert.pem"apps:
- name: "Sample Application"enabled: trueonly_ssl: falsekey: "278d525bdf162c739803"secret: "${APP_SECRET}"# Expand env varsapp_id: "1"user_events: truewebhooks:
enabled: trueurl: "http://127.0.0.1:5000/hook"

Libraries

Client javascript library

letpusher=newPusher(APP_KEY,{wsHost: 'localhost',wsPort: 8080,wssPort: 4433,// Required if encrypted is trueencrypted: false,// Optional. the application must use only SSL connectionsenabledTransports: ["ws","flash"],disabledTransports: ["flash"]});

Client server libraries

Ruby

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

PHP

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

Go

package main
import"github.com/pusher/pusher-http-go"funcmain() {
client:= pusher.Client{
AppId: "APP_ID",
Key: "APP_KEY",
Secret: "APP_SECRET",
Host: ":8080",
}
// use the client
}

NodeJS

letpusher=newPusher({appId: APP_ID,key: APP_KEY,secret: APP_SECRETdomain: '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 excellent service, their service is very reliable. I recommend 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, 2018 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.

About

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

Resources

Stars

363 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages