fayec/client.go
2018-09-05 00:55:52 +02:00

49 lines
1.0 KiB
Go

package faye
import (
"github.com/thesyncim/faye/message"
"github.com/thesyncim/faye/transport"
)
type options struct {
inExtension message.Extension
outExtension message.Extension
transport transport.Transport
}
var defaultOpts = options{
transport: transport.GetTransport("websocket"),
}
//https://faye.jcoglan.com/architecture.html
type client interface {
Subscribe(subscription string, onMsg func(message *message.Message)) error
Publish(subscription string, message *message.Message) error
//todo unsubscribe,etc
}
type Option func(*options)
var _ client = (*Client)(nil)
type Client struct {
opts options
}
func NewClient(url string, opts ...Option) (*Client, error) {
var c Client
c.opts = defaultOpts
for _, opt := range opts {
opt(&c.opts)
}
return &c, nil
}
func (c *Client) Subscribe(subscription string, onMsg func(message *message.Message)) error {
panic("not implemented")
}
func (c *Client) Publish(subscription string, message *message.Message) error {
panic("not implemented")
}