diff --git a/examples/not-so-simple-examples/grpc-multihome/main.go b/examples/not-so-simple-examples/grpc-multihome/main.go index 5010469..a149950 100644 --- a/examples/not-so-simple-examples/grpc-multihome/main.go +++ b/examples/not-so-simple-examples/grpc-multihome/main.go @@ -15,6 +15,11 @@ import ( //"time" ) +type socketcast struct { + SocketID string `json:"socketId"` + Data string `json:"data"` +} + type roomcast struct { Room string `json:"room"` Data string `json:"data"` @@ -46,6 +51,9 @@ func main() { s.On("echojson", EchoJSON) s.On("join", Join) s.On("leave", Leave) + s.On("socketcast", Socketcast) + s.On("socketcastbin", SocketcastBin) + s.On("socketcastjson", SocketcastJSON) s.On("roomcast", Roomcast) s.On("roomcastbin", RoomcastBin) s.On("roomcastjson", RoomcastJSON) @@ -122,6 +130,30 @@ func Leave(s *ss.Socket, data []byte) { s.Emit("echo", "left room:"+d) } +func Socketcast(s *ss.Socket, data []byte) { + var sc socketcast + err := json.Unmarshal(data, &sc) + check(err) + + s.Socketcast(sc.SocketID, "socketcast", sc.Data) +} + +func SocketcastBin(s *ss.Socket, data []byte) { + var sc socketcast + err := json.Unmarshal(data, &sc) + check(err) + + s.Socketcast(sc.SocketID, "socketcastbin", []byte(sc.Data)) +} + +func SocketcastJSON(s *ss.Socket, data []byte) { + var sc socketcast + err := json.Unmarshal(data, &sc) + check(err) + + s.Socketcast(sc.SocketID, "socketcastjson", sc) +} + func Roomcast(s *ss.Socket, data []byte) { var r roomcast err := json.Unmarshal(data, &r) diff --git a/examples/not-so-simple-examples/grpc-multihome/webroot/index.html b/examples/not-so-simple-examples/grpc-multihome/webroot/index.html index 42bb7a5..46565c8 100644 --- a/examples/not-so-simple-examples/grpc-multihome/webroot/index.html +++ b/examples/not-so-simple-examples/grpc-multihome/webroot/index.html @@ -15,17 +15,32 @@
- +
+ +
+ +
+ + + +
+ +
+
- +
Broadcast Broadcast Binary @@ -56,8 +71,8 @@
- - + +
Roomcast Roomcast Binary diff --git a/examples/not-so-simple-examples/grpc-multihome/webroot/js/app.js b/examples/not-so-simple-examples/grpc-multihome/webroot/js/app.js index e2f98d2..13f0618 100644 --- a/examples/not-so-simple-examples/grpc-multihome/webroot/js/app.js +++ b/examples/not-so-simple-examples/grpc-multihome/webroot/js/app.js @@ -21,6 +21,8 @@ inEcho = get('#in-echo'), inJoin = get('#in-join'), inLeave = get('#in-leave'), + inSocketcastID = get('#in-socketcast-socket'), + inSocketcastData = get('#in-socketcast-data'), inBroadcast = get('#in-broadcast'), inRoomcastRoom = get('#in-roomcast-room'), inRoomcastData = get('#in-roomcast-data'), @@ -29,6 +31,9 @@ btnEchoJSON = get('#btn-echo-json'), btnJoin = get('#btn-join'), btnLeave = get('#btn-leave'), + btnSocketcast = get('#btn-socketcast'), + btnSocketcastBin = get('#btn-socketcast-bin'), + btnSocketcastJSON = get('#btn-socketcast-json'), btnBroadcast = get('#btn-broadcast'), btnBroadcastBin = get('#btn-broadcast-bin'), btnBroadcastJSON = get('#btn-broadcast-json'), @@ -73,6 +78,18 @@ addMessage('got JSON: '+JSON.stringify(data)); }); + ws.on('socketcast', function(data){ + addMessage('got socketcast: '+data); + }); + + ws.on('socketcastbin', function(data){ + addMessage('got binary socketcast: '+data.byteLength+' bytes - '+abToStr(data)); + }); + + ws.on('socketcastjson', function(data){ + addMessage('got JSON socketcast: '+JSON.stringify(data)); + }); + ws.on('roomcast', function(data){ addMessage('got roomcast: '+data); }); @@ -148,6 +165,21 @@ ws.emit('broadcastjson', {message: inBroadcast.value}); }); + btnSocketcast.addEventListener('click', function(){ + if(inSocketcastID.value.length === 0 || inSocketcastData.value.length === 0) return; + ws.emit('socketcast', JSON.stringify({socketId: inSocketcastID.value, data: inSocketcastData.value})); + }); + + btnSocketcastBin.addEventListener('click', function(){ + if(inSocketcastID.value.length === 0 || inSocketcastData.value.length === 0) return; + ws.emit('socketcastbin', strToAB(JSON.stringify({socketId: inSocketcastID.value, data: inSocketcastData.value}))); + }); + + btnSocketcastJSON.addEventListener('click', function(){ + if(inSocketcastID.value.length === 0 || inSocketcastData.value.length === 0) return; + ws.emit('socketcastjson', {socketId: inSocketcastID.value, data: inSocketcastData.value}); + }); + btnRoomcast.addEventListener('click', function(){ if(inRoomcastRoom.value.length === 0 || inRoomcastData.value.length === 0) return; ws.emit('roomcast', JSON.stringify({room: inRoomcastRoom.value, data: inRoomcastData.value})); diff --git a/server.go b/server.go index 85ee451..825c7b5 100644 --- a/server.go +++ b/server.go @@ -176,6 +176,11 @@ func (serv *SocketServer) Broadcast(eventName string, data interface{}) { serv.hub.broadcast(&BroadcastMsg{eventName, data}) } +//Socketcast dispatches an event to the specified socket ID. +func (serv *SocketServer) Socketcast(socketID, eventName string, data interface{}) { + serv.Roomcast("__socket_id:"+socketID, eventName, data) +} + //loop handles all the coordination between new sockets //reading frames and dispatching events func (serv *SocketServer) loop(ws *websocket.Conn) { @@ -184,6 +189,8 @@ func (serv *SocketServer) loop(ws *websocket.Conn) { defer s.Close() + s.Join("__socket_id:"+s.ID()) + serv.l.RLock() e := serv.onConnectFunc serv.l.RUnlock() diff --git a/socket.go b/socket.go index cdc311d..dc51dff 100644 --- a/socket.go +++ b/socket.go @@ -112,6 +112,11 @@ func (s *Socket) Broadcast(eventName string, data interface{}) { s.serv.hub.broadcast(&BroadcastMsg{eventName, data}) } +//Socketcast dispatches an event to the specified socket ID. +func (s *Socket) Socketcast(socketID, eventName string, data interface{}) { + s.serv.Roomcast("__socket_id:"+socketID, eventName, data) +} + //Emit dispatches an event to s. func (s *Socket) Emit(eventName string, data interface{}) error { d, msgType := emitData(eventName, data) diff --git a/vendor/vendor.json b/vendor/vendor.json index 0872efa..ca7a810 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -3,136 +3,136 @@ "ignore": "test", "package": [ { - "checksumSHA1": "FJNxhMx09x2yXsqUkSS4c3K+U4M=", + "checksumSHA1": "GBvfw/CFYzCQwaQfjAHny6LoxBY=", "path": "github.com/dvsekhvalnov/jose2go", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "X38qrRzL+rPyO4xZhm16ftyLkXs=", "path": "github.com/dvsekhvalnov/jose2go/aes", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "RbRzJ9jDZJnCUKbJJy7e2OSTUro=", "path": "github.com/dvsekhvalnov/jose2go/arrays", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "uQqU76qm0Q57HnnCEp56r43jGaU=", "path": "github.com/dvsekhvalnov/jose2go/base64url", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "h/QQYYL/tuXhe8ELZvyk1wKrZz4=", "path": "github.com/dvsekhvalnov/jose2go/compact", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "gjXFjcEV/LZG4U/lgm/CVYvvWOg=", "path": "github.com/dvsekhvalnov/jose2go/kdf", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "o1OtVBn2DVAG07K6teBpkUNjqkM=", "path": "github.com/dvsekhvalnov/jose2go/keys/ecc", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { "checksumSHA1": "gAEKTUiQk9JoMonf1G508SXpLw4=", "path": "github.com/dvsekhvalnov/jose2go/padding", - "revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", - "revisionTime": "2018-05-07T07:32:26Z" + "revision": "7f401d37b68add7a984afa734c3751a4e91c3502", + "revisionTime": "2018-08-29T12:41:32Z" }, { - "checksumSHA1": "Mom4aDBDTlunU3+qc3QQP/r48OE=", + "checksumSHA1": "cmthqHHbFaaVPxOgj3osQWe2bEU=", "path": "github.com/go-redis/redis", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "L/n8TwOiRwhhL2TvFNafxB6rAwY=", + "checksumSHA1": "z12gGj6VbVBcPOvof1aCM+DVGRU=", "path": "github.com/go-redis/redis/internal", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { "checksumSHA1": "GQZsUVg/+6UpQAYpc4luMvMutSI=", "path": "github.com/go-redis/redis/internal/consistenthash", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "GE9tg94JwCzMbBwn3Q2LaFs5Rx0=", + "checksumSHA1": "l66eTZiJqueypc56HXCakGDm784=", "path": "github.com/go-redis/redis/internal/hashtag", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "AtcctlDri3zLh6U5sDnT4NULEtw=", + "checksumSHA1": "WoUjtqpn00RUnAgZLljk3lWfpSQ=", "path": "github.com/go-redis/redis/internal/pool", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "2DZs/18lBWzZk2rxWLVtPUzNXhs=", + "checksumSHA1": "zCo0t+gRBbctwyIpkDLrqRFtXew=", "path": "github.com/go-redis/redis/internal/proto", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { "checksumSHA1": "sjbjSJrTdvyDwNjrWjTNeXgUhaU=", "path": "github.com/go-redis/redis/internal/singleflight", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "SvyqZrzHTVxCIBoawql2ucvfWLE=", + "checksumSHA1": "1PH2NoAB/u3IZmLYyCrIbOzqLZ4=", "path": "github.com/go-redis/redis/internal/util", - "revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", - "revisionTime": "2018-05-17T12:21:51Z" + "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d", + "revisionTime": "2018-10-14T08:27:34Z" }, { - "checksumSHA1": "3Xl2eFF4Q+bZkX2RIrIZUkYDRdk=", + "checksumSHA1": "GaJLoEuMGnP5ofXvuweAI4wx06U=", "path": "github.com/golang/protobuf/proto", - "revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", - "revisionTime": "2018-05-11T22:16:37Z" + "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d", + "revisionTime": "2018-10-05T18:17:28Z" }, { "checksumSHA1": "tkJPssYejSjuAwE2tdEnoEIj93Q=", "path": "github.com/golang/protobuf/ptypes", - "revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", - "revisionTime": "2018-05-11T22:16:37Z" + "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d", + "revisionTime": "2018-10-05T18:17:28Z" }, { - "checksumSHA1": "3eqU9o+NMZSLM/coY5WDq7C1uKg=", + "checksumSHA1": "UvYEjI10BRTlBOd8fZvQrJbLpC4=", "path": "github.com/golang/protobuf/ptypes/any", - "revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", - "revisionTime": "2018-05-11T22:16:37Z" + "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d", + "revisionTime": "2018-10-05T18:17:28Z" }, { - "checksumSHA1": "ZIF0rnVzNLluFPqUebtJrVonMr4=", + "checksumSHA1": "GKo6mbuEFhhg/SzB4UpvEB64rDA=", "path": "github.com/golang/protobuf/ptypes/duration", - "revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", - "revisionTime": "2018-05-11T22:16:37Z" + "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d", + "revisionTime": "2018-10-05T18:17:28Z" }, { - "checksumSHA1": "1FJvuT0UllZaaS43kmPlx8oNiCs=", + "checksumSHA1": "T42CEYmGiqIXTe36UJ5jLPO33lY=", "path": "github.com/golang/protobuf/ptypes/timestamp", - "revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", - "revisionTime": "2018-05-11T22:16:37Z" + "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d", + "revisionTime": "2018-10-05T18:17:28Z" }, { - "checksumSHA1": "GKI0C5VBjSEutOnBQsZv4gXHnrk=", + "checksumSHA1": "QdSIO+gp41BqNti0ZDVdXvfDvDo=", "path": "github.com/gorilla/websocket", - "revision": "cd94665a654c1ec903896f2902573b46dd21baa7", - "revisionTime": "2018-04-16T03:20:28Z" + "revision": "5ed622c449da6d44c3c8329331ff47a9e5844f71", + "revisionTime": "2018-06-05T20:25:52Z" }, { "checksumSHA1": "B3lecX/oKdXvYhYmdUdTz42n4i8=", @@ -143,248 +143,266 @@ { "checksumSHA1": "GtamqiJoL7PGHsN454AoffBFMa8=", "path": "golang.org/x/net/context", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { - "checksumSHA1": "c3H2wB/3tGrw6VqCnlye+kSdoXU=", + "checksumSHA1": "pCY4YtdNKVBYRbNvODjx8hj0hIs=", "path": "golang.org/x/net/http/httpguts", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { - "checksumSHA1": "vmDOV5hpPY+U+rlFZvO0YMlxF54=", + "checksumSHA1": "N0asyGBBR6/7qIdCpdb2OxAyv4U=", "path": "golang.org/x/net/http2", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { - "checksumSHA1": "leSW9aM30mATlWs/eeqhQQh/3eo=", + "checksumSHA1": "KZniwnfpWkaTPhUQDUTvgex/7y0=", "path": "golang.org/x/net/http2/hpack", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { "checksumSHA1": "RcrB7tgYS/GMW4QrwVdMOTNqIU8=", "path": "golang.org/x/net/idna", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { "checksumSHA1": "UxahDzW2v4mf/+aFxruuupaoIwo=", "path": "golang.org/x/net/internal/timeseries", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" }, { - "checksumSHA1": "rJn3m/27kO+2IU6KCCZ74Miby+8=", + "checksumSHA1": "6ckrK99wkirarIfFNX4+AHWBEHM=", "path": "golang.org/x/net/trace", - "revision": "2491c5de3490fced2f6cff376127c667efeed857", - "revisionTime": "2018-05-11T17:36:03Z" + "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e", + "revisionTime": "2018-10-17T11:24:37Z" + }, + { + "checksumSHA1": "rm2+rsro/sFr2ucdL0gGBcaBX3o=", + "path": "golang.org/x/sys/unix", + "revision": "fa43e7bc11baaae89f3f902b2b4d832b68234844", + "revisionTime": "2018-10-11T14:35:51Z" }, { "checksumSHA1": "CbpjEkkOeh0fdM/V8xKDdI0AA88=", "path": "golang.org/x/text/secure/bidirule", - "revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", - "revisionTime": "2018-05-10T04:57:31Z" + "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81", + "revisionTime": "2018-09-21T09:56:34Z" }, { "checksumSHA1": "ziMb9+ANGRJSSIuxYdRbA+cDRBQ=", "path": "golang.org/x/text/transform", - "revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", - "revisionTime": "2018-05-10T04:57:31Z" + "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81", + "revisionTime": "2018-09-21T09:56:34Z" }, { - "checksumSHA1": "1oQpUH9BjCWlqFPDahRH+UMlYy4=", + "checksumSHA1": "UwLPI4qEs8cBU0CNw+/99/F1rN0=", "path": "golang.org/x/text/unicode/bidi", - "revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", - "revisionTime": "2018-05-10T04:57:31Z" + "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81", + "revisionTime": "2018-09-21T09:56:34Z" }, { - "checksumSHA1": "lN2xlA6Utu7tXy2iUoMF2+y9EUE=", + "checksumSHA1": "othnvXmmdxkNRyNDxRg5SKwLP8k=", "path": "golang.org/x/text/unicode/norm", - "revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", - "revisionTime": "2018-05-10T04:57:31Z" + "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81", + "revisionTime": "2018-09-21T09:56:34Z" }, { - "checksumSHA1": "2iGEpqdA3KpuCNSWW6KPCIhpXl4=", + "checksumSHA1": "MgYFT27I9gfAtSVBpGVqkCYOj3U=", "path": "google.golang.org/genproto/googleapis/rpc/status", - "revision": "7bb2a897381c9c5ab2aeb8614f758d7766af68ff", - "revisionTime": "2018-05-14T19:46:45Z" + "revision": "94acd270e44e65579b9ee3cdab25034d33fed608", + "revisionTime": "2018-10-16T17:01:14Z" }, { - "checksumSHA1": "VAOXPE2tLp/o1Cp7Nib4P9I3LSo=", + "checksumSHA1": "5cU6eHFzsIKIyj/oKC28aVBEyMs=", "path": "google.golang.org/grpc", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "XgBf9DGAD5gsvWR3LLqn3cI5uGQ=", + "checksumSHA1": "9KEKKMRAdFnz2sMBXbb33ZLS8Oo=", "path": "google.golang.org/grpc/balancer", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "lw+L836hLeH8+//le+C+ycddCCU=", "path": "google.golang.org/grpc/balancer/base", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "DJ1AtOk4Pu7bqtUMob95Hw8HPNw=", "path": "google.golang.org/grpc/balancer/roundrobin", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "y2MH/S0g7vnJorDX+hRZNu7qc+c=", - "path": "google.golang.org/grpc/channelz", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" - }, - { - "checksumSHA1": "j8Qs+yfgwYYOtodB/1bSlbzV5rs=", + "checksumSHA1": "R3tuACGAPyK4lr+oSNt1saUzC0M=", "path": "google.golang.org/grpc/codes", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "XH2WYcDNwVO47zYShREJjcYXm0Y=", "path": "google.golang.org/grpc/connectivity", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "KthiDKNPHMeIu967enqtE4NaZzI=", + "checksumSHA1": "5r6NIQY1c3NjwLtxUOo/BcUOqFo=", "path": "google.golang.org/grpc/credentials", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "cfLb+pzWB+Glwp82rgfcEST1mv8=", "path": "google.golang.org/grpc/encoding", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "LKKkn7EYA+Do9Qwb2/SUKLFNxoo=", "path": "google.golang.org/grpc/encoding/proto", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" - }, - { - "checksumSHA1": "n+8rAQxWcf9LPJat2UHq2uVzH20=", - "path": "google.golang.org/grpc/grpclb/grpc_lb_v1/messages", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "ZPPSFisPDz2ANO4FBZIft+fRxyk=", "path": "google.golang.org/grpc/grpclog", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "Qvf3zdmRCSsiM/VoBv0qB/naHtU=", + "checksumSHA1": "LVvnj/+AVrdZMDw0DZ8D/vI24+M=", "path": "google.golang.org/grpc/internal", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "hcuHgKp8W0wIzoCnNfKI8NUss5o=", + "checksumSHA1": "uDJA7QK2iGnEwbd9TPqkLaM+xuU=", + "path": "google.golang.org/grpc/internal/backoff", + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" + }, + { + "checksumSHA1": "V6eyqZJfYh+cX+I/AxPVjkQLjTM=", + "path": "google.golang.org/grpc/internal/channelz", + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" + }, + { + "checksumSHA1": "5dFUCEaPjKwza9kwKqgljp8ckU4=", + "path": "google.golang.org/grpc/internal/envconfig", + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" + }, + { + "checksumSHA1": "70gndc/uHwyAl3D45zqp7vyHWlo=", + "path": "google.golang.org/grpc/internal/grpcrand", + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" + }, + { + "checksumSHA1": "0r7S4jTgUIatKqL/8ra0J7Q5iO0=", + "path": "google.golang.org/grpc/internal/transport", + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" + }, + { + "checksumSHA1": "350+v+N+AuknxomqjND19nR969g=", "path": "google.golang.org/grpc/keepalive", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "OjIAi5AzqlQ7kLtdAyjvdgMf6hc=", "path": "google.golang.org/grpc/metadata", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "VvGBoawND0urmYDy11FT+U1IHtU=", "path": "google.golang.org/grpc/naming", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "n5EgDdBqFMa2KQFhtl+FF/4gIFo=", "path": "google.golang.org/grpc/peer", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "QOKwFz4Zdfxfjs8czgCCtzM5bk4=", + "checksumSHA1": "GEq6wwE1qWLmkaM02SjxBmmnHDo=", "path": "google.golang.org/grpc/resolver", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "reN7P4MtzZYidpSFocLZJD70EGo=", + "checksumSHA1": "grHAHa6Fi3WBsXJpmlEOlRbWWVg=", "path": "google.golang.org/grpc/resolver/dns", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "zs9M4xE8Lyg4wvuYvR00XoBxmuw=", "path": "google.golang.org/grpc/resolver/passthrough", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "YclPgme2gT3S0hTkHVdE1zAxJdo=", "path": "google.golang.org/grpc/stats", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "t/NhHuykWsxY0gEBd2WIv5RVBK8=", + "checksumSHA1": "hFyBO5vgsMamKhUOSyPCqROk1vo=", "path": "google.golang.org/grpc/status", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { "checksumSHA1": "qvArRhlrww5WvRmbyMF2mUfbJew=", "path": "google.golang.org/grpc/tap", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" + "revision": "491af2b0a46021e419be712e762e78290a333ba9", + "revisionTime": "2018-10-17T21:44:02Z" }, { - "checksumSHA1": "XpVpTOe7MXB52lg97T1hkt58Mkg=", - "path": "google.golang.org/grpc/transport", - "revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", - "revisionTime": "2018-05-17T18:11:47Z" - }, - { - "checksumSHA1": "1D8GzeoFGUs5FZOoyC2DpQg8c5Y=", + "checksumSHA1": "bS5Kp6YjeXz4nvvS55CqIBP+HzM=", "path": "gopkg.in/mgo.v2", - "revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", - "revisionTime": "2016-08-18T02:01:20Z" + "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5", + "revisionTime": "2018-07-05T11:36:04Z" }, { - "checksumSHA1": "YsB2DChSV9HxdzHaKATllAUKWSI=", + "checksumSHA1": "/xRHTpN8WOK4nmZjJ1f96ER1b/o=", "path": "gopkg.in/mgo.v2/bson", - "revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", - "revisionTime": "2016-08-18T02:01:20Z" + "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5", + "revisionTime": "2018-07-05T11:36:04Z" }, { "checksumSHA1": "XQsrqoNT1U0KzLxOFcAZVvqhLfk=", "path": "gopkg.in/mgo.v2/internal/json", - "revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", - "revisionTime": "2016-08-18T02:01:20Z" + "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5", + "revisionTime": "2018-07-05T11:36:04Z" }, { "checksumSHA1": "LEvMCnprte47qdAxWvQ/zRxVF1U=", "path": "gopkg.in/mgo.v2/internal/sasl", - "revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", - "revisionTime": "2016-08-18T02:01:20Z" + "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5", + "revisionTime": "2018-07-05T11:36:04Z" }, { "checksumSHA1": "+1WDRPaOphSCmRMxVPIPBV4aubc=", "path": "gopkg.in/mgo.v2/internal/scram", - "revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", - "revisionTime": "2016-08-18T02:01:20Z" + "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5", + "revisionTime": "2018-07-05T11:36:04Z" } ], "rootPath": "github.com/raz-varren/sacrificial-socket"