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?
- I wanted to learn Go and I needed a non trivial application;
- I use Pusher in some projects;
- I really like Pusher;
- 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/ipeor simply
$ go install github.com/dimiro1/ipeBuilding 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: false ssl: enabled: false host: ":4343" key_file: "key.pem" cert_file: "cert.pem" apps: - name: "Sample Application" enabled: true only_ssl: false key: "278d525bdf162c739803" secret: "${APP_SECRET}" # Expand env vars app_id: "1" user_events: true webhooks: enabled: true url: "http://127.0.0.1:5000/hook"
Client javascript library
let 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");
Go
package main import "github.com/pusher/pusher-http-go" func main() { client := pusher.Client{ AppId: "APP_ID", Key: "APP_KEY", Secret: "APP_SECRET", Host: ":8080", } // use the client }
NodeJS
let 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.
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.
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.