faye

package module
v0.0.0-...-d2dfa33 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2016 License: MIT Imports: 10 Imported by: 0

README

Faye server in Go

This is a Faye server written it in go. It is still experimental at this stage, but it is stable. The Bayeux Spec can be found here: http://autogrowsystems.github.io/faye-go/

Build

$ go get github.com/autogrowsystems/faye-go
$ GO15VENDOREXPIMENT=1 go build github.com/autogrowsystems/faye-go/main/faye_server.go

Run

Here's the usage for it:

Usage of faye_server:
  -h string
    	Port number to serve on (default "127.0.0.1")
  -p string
    	Port number to serve on (default "8000")
  -public string
    	Port number to serve on (default "src/github.com/autogrowsystems/faye-go/public")

Simply run it like so:

$ ./faye_server -p 8099

Features

  • websockets
  • long-polling

Acknowledgements

  • Ron Cohen - development of all the libraries that power the server

Licence

The MIT License (MIT)

Copyright (c) 2014 Ron Cohen
Copyright (c) 2016 Autogrow Systems Limited

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JSONWrite

func JSONWrite(w io.Writer, obj interface{}) error

Types

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

func NewEngine

func NewEngine(logger utils.Logger) Engine

func (Engine) AddSubscription

func (m Engine) AddSubscription(clientId string, subscriptions []string)

func (Engine) Connect

func (m Engine) Connect(request protocol.Message, client *protocol.Client, conn protocol.Connection)

func (Engine) Disconnect

func (m Engine) Disconnect(request protocol.Message, client *protocol.Client, conn protocol.Connection)

func (Engine) GetClient

func (m Engine) GetClient(clientId string) *protocol.Client

func (Engine) Handshake

func (m Engine) Handshake(request protocol.Message, conn protocol.Connection) string

func (Engine) NewClient

func (m Engine) NewClient(conn protocol.Connection) *protocol.Client

func (Engine) Publish

func (m Engine) Publish(request protocol.Message, conn protocol.Connection)

func (Engine) PublishFromService

func (m Engine) PublishFromService(recipientId string, msg protocol.Message)

Publish message directly to client msg should have "channel" which the client is expecting, e.g. "/service/echo"

func (Engine) SubscribeClient

func (m Engine) SubscribeClient(request protocol.Message, client *protocol.Client)

func (Engine) SubscribeService

func (m Engine) SubscribeService(chanOut chan<- protocol.Message, subscription []string)

type MemoryNamespace

type MemoryNamespace struct {
	// contains filtered or unexported fields
}

func NewMemoryNamespace

func NewMemoryNamespace() MemoryNamespace

func (MemoryNamespace) Expire

func (m MemoryNamespace) Expire(id string)

func (MemoryNamespace) Generate

func (m MemoryNamespace) Generate() string

func (MemoryNamespace) IsUsed

func (m MemoryNamespace) IsUsed(id string) bool

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(logger utils.Logger, engine Engine) Server

func (Server) Engine

func (s Server) Engine() Engine

func (Server) GetClient

func (s Server) GetClient(request protocol.Message, conn protocol.Connection) *protocol.Client

func (Server) HandleMessage

func (s Server) HandleMessage(msg protocol.Message, conn protocol.Connection)

func (Server) HandleMeta

func (s Server) HandleMeta(msg protocol.Message, conn protocol.Connection) protocol.Message

func (Server) HandlePublish

func (s Server) HandlePublish(msg protocol.Message, conn protocol.Connection)

func (Server) HandleRequest

func (s Server) HandleRequest(msges interface{}, conn protocol.Connection)

func (Server) Logger

func (s Server) Logger() utils.Logger

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL