This commit is contained in:
raz-varren
2016-08-12 18:29:47 +00:00
parent 34f91b9914
commit 1ee09caef3
10 changed files with 35 additions and 37 deletions

View File

@@ -1,8 +1,8 @@
package ssgrpc package ssgrpc
import ( import (
"google.golang.org/grpc"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport" "github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport"
"google.golang.org/grpc"
//"sync" //"sync"
) )

View File

@@ -1,9 +1,9 @@
package ssgrpc package ssgrpc
import ( import (
"golang.org/x/net/context"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/token" "github.com/raz-varren/sacrificial-socket/backend/ssgrpc/token"
"github.com/raz-varren/sacrificial-socket/log" "github.com/raz-varren/sacrificial-socket/log"
"golang.org/x/net/context"
"sync" "sync"
"time" "time"
) )

View File

@@ -3,12 +3,12 @@ package ssgrpc
import ( import (
"encoding/json" "encoding/json"
"errors" "errors"
"golang.org/x/net/context"
"google.golang.org/grpc/metadata"
ss "github.com/raz-varren/sacrificial-socket" ss "github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/token" "github.com/raz-varren/sacrificial-socket/backend/ssgrpc/token"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport" "github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport"
"github.com/raz-varren/sacrificial-socket/log" "github.com/raz-varren/sacrificial-socket/log"
"golang.org/x/net/context"
"google.golang.org/grpc/metadata"
"strings" "strings"
"sync" "sync"
) )

View File

@@ -2,13 +2,13 @@ package ssgrpc
import ( import (
"encoding/json" "encoding/json"
ss "github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport"
"github.com/raz-varren/sacrificial-socket/log"
"golang.org/x/net/context" "golang.org/x/net/context"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials"
"net" "net"
ss "github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc/transport"
"github.com/raz-varren/sacrificial-socket/log"
"strings" "strings"
"sync" "sync"
"time" "time"
@@ -44,7 +44,7 @@ func NewBackend(tlsKeyFile, tlsCertFile, grpcHostPort string, sharedKey []byte,
} }
} }
//NewInsecureBackend returns a GRPCMHB that will use no encryption or authentication to connect to the //NewInsecureBackend returns a GRPCMHB that will use no encryption or authentication to connect to the
//peers in peerList //peers in peerList
// //
//It is highly discouraged to use this for production systems, as all data will be sent in clear //It is highly discouraged to use this for production systems, as all data will be sent in clear

View File

@@ -2,11 +2,11 @@ package ssmongo
import ( import (
"encoding/json" "encoding/json"
ss "github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/log"
"gopkg.in/mgo.v2" "gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson" "gopkg.in/mgo.v2/bson"
"io" "io"
ss "github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/log"
"sync" "sync"
"time" "time"
) )
@@ -14,13 +14,13 @@ import (
//MMHB implements ss.MultihomeBackend and uses MongoDB to syncronize between //MMHB implements ss.MultihomeBackend and uses MongoDB to syncronize between
//multiple machines running ss.SocketServer //multiple machines running ss.SocketServer
type MMHB struct { type MMHB struct {
session *mgo.Session session *mgo.Session
serverC *mgo.Collection serverC *mgo.Collection
roomcastC *mgo.Collection roomcastC *mgo.Collection
broadcastC *mgo.Collection broadcastC *mgo.Collection
server backendServer server backendServer
pollFrequency time.Duration pollFrequency time.Duration
l *sync.RWMutex l *sync.RWMutex
} }
//NewMongoDBBackend returns a new instance of MMHB which satisfies the ss.MultihomeBackend interface. //NewMongoDBBackend returns a new instance of MMHB which satisfies the ss.MultihomeBackend interface.
@@ -46,13 +46,13 @@ func NewBackend(mongoURL, serverName, serverGroup string, pollFrequency time.Dur
} }
return &MMHB{ return &MMHB{
session: m, session: m,
serverC: db.C("ss.activeServers"), serverC: db.C("ss.activeServers"),
roomcastC: db.C("ss.roomcasts"), roomcastC: db.C("ss.roomcasts"),
broadcastC: db.C("ss.broadcasts"), broadcastC: db.C("ss.broadcasts"),
server: s, server: s,
pollFrequency: pollFrequency, pollFrequency: pollFrequency,
l: &sync.RWMutex{}, l: &sync.RWMutex{},
} }
} }

View File

@@ -3,11 +3,11 @@ package main
import ( import (
"encoding/json" "encoding/json"
"flag" "flag"
"github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc"
"log" "log"
"net/http" "net/http"
"os" "os"
"github.com/raz-varren/sacrificial-socket"
"github.com/raz-varren/sacrificial-socket/backend/ssgrpc"
"strings" "strings"
//"time" //"time"
) )
@@ -101,20 +101,20 @@ func EchoJSON(s *ss.Socket, data []byte) {
var m message var m message
err := json.Unmarshal(data, &m) err := json.Unmarshal(data, &m)
check(err) check(err)
s.Emit("echojson", m) s.Emit("echojson", m)
} }
func Join(s *ss.Socket, data []byte) { func Join(s *ss.Socket, data []byte) {
d := string(data) d := string(data)
s.Join(d) s.Join(d)
s.Emit("echo", "joined room:" + d) s.Emit("echo", "joined room:"+d)
} }
func Leave(s *ss.Socket, data []byte) { func Leave(s *ss.Socket, data []byte) {
d := string(data) d := string(data)
s.Leave(d) s.Leave(d)
s.Emit("echo", "left room:" + d) s.Emit("echo", "left room:"+d)
} }
func Roomcast(s *ss.Socket, data []byte) { func Roomcast(s *ss.Socket, data []byte) {
@@ -129,7 +129,7 @@ func RoomcastBin(s *ss.Socket, data []byte) {
var r roomcast var r roomcast
err := json.Unmarshal(data, &r) err := json.Unmarshal(data, &r)
check(err) check(err)
s.Roomcast(r.Room, "roomcastbin", []byte(r.Data)) s.Roomcast(r.Room, "roomcastbin", []byte(r.Data))
} }
@@ -141,12 +141,11 @@ func RoomcastJSON(s *ss.Socket, data []byte) {
s.Roomcast(r.Room, "roomcastjson", r) s.Roomcast(r.Room, "roomcastjson", r)
} }
func Broadcast(s *ss.Socket, data []byte) { func Broadcast(s *ss.Socket, data []byte) {
s.Broadcast("broadcast", string(data)) s.Broadcast("broadcast", string(data))
} }
func BroadcastBin(s *ss.Socket, data []byte){ func BroadcastBin(s *ss.Socket, data []byte) {
s.Broadcast("broadcastbin", data) s.Broadcast("broadcastbin", data)
} }
@@ -154,7 +153,7 @@ func BroadcastJSON(s *ss.Socket, data []byte) {
var m message var m message
err := json.Unmarshal(data, &m) err := json.Unmarshal(data, &m)
check(err) check(err)
s.Broadcast("broadcastjson", m) s.Broadcast("broadcastjson", m)
} }

View File

@@ -2,9 +2,9 @@ package main
import ( import (
"encoding/json" "encoding/json"
ss "github.com/raz-varren/sacrificial-socket"
"log" "log"
"net/http" "net/http"
ss "github.com/raz-varren/sacrificial-socket"
) )
func main() { func main() {

View File

@@ -8,12 +8,12 @@ Sacrificial-Socket also has a MultihomeBackend interface for syncronizing broadc
package ss package ss
import ( import (
"github.com/raz-varren/sacrificial-socket/log"
"golang.org/x/net/websocket" "golang.org/x/net/websocket"
"io" "io"
"net/http" "net/http"
"os" "os"
"os/signal" "os/signal"
"github.com/raz-varren/sacrificial-socket/log"
"sync" "sync"
"syscall" "syscall"
) )
@@ -158,14 +158,13 @@ func (serv *SocketServer) loop(ws *websocket.Conn) {
return return
} }
eventName := "" eventName := ""
contentIdx := 0 contentIdx := 0
for idx, chr := range msg { for idx, chr := range msg {
if chr == startOfDataByte { if chr == startOfDataByte {
eventName = string(msg[:idx]) eventName = string(msg[:idx])
contentIdx = idx+1 contentIdx = idx + 1
break break
} }
} }

View File

@@ -2,10 +2,10 @@ package ss_test
import ( import (
"encoding/json" "encoding/json"
"github.com/raz-varren/sacrificial-socket"
"log" "log"
"net/http" "net/http"
"os" "os"
"github.com/raz-varren/sacrificial-socket"
) )
func ExampleNewServer() { func ExampleNewServer() {

View File

@@ -3,9 +3,9 @@ package ss
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"golang.org/x/net/websocket"
"github.com/raz-varren/sacrificial-socket/log" "github.com/raz-varren/sacrificial-socket/log"
"github.com/raz-varren/sacrificial-socket/tools" "github.com/raz-varren/sacrificial-socket/tools"
"golang.org/x/net/websocket"
"sync" "sync"
) )