added socketcast

This commit is contained in:
skedar46
2018-10-17 20:12:26 -07:00
parent 43c618076b
commit 508e9f6621
6 changed files with 281 additions and 172 deletions

View File

@@ -15,6 +15,11 @@ import (
//"time" //"time"
) )
type socketcast struct {
SocketID string `json:"socketId"`
Data string `json:"data"`
}
type roomcast struct { type roomcast struct {
Room string `json:"room"` Room string `json:"room"`
Data string `json:"data"` Data string `json:"data"`
@@ -46,6 +51,9 @@ func main() {
s.On("echojson", EchoJSON) s.On("echojson", EchoJSON)
s.On("join", Join) s.On("join", Join)
s.On("leave", Leave) s.On("leave", Leave)
s.On("socketcast", Socketcast)
s.On("socketcastbin", SocketcastBin)
s.On("socketcastjson", SocketcastJSON)
s.On("roomcast", Roomcast) s.On("roomcast", Roomcast)
s.On("roomcastbin", RoomcastBin) s.On("roomcastbin", RoomcastBin)
s.On("roomcastjson", RoomcastJSON) s.On("roomcastjson", RoomcastJSON)
@@ -122,6 +130,30 @@ func Leave(s *ss.Socket, data []byte) {
s.Emit("echo", "left room:"+d) 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) { func Roomcast(s *ss.Socket, data []byte) {
var r roomcast var r roomcast
err := json.Unmarshal(data, &r) err := json.Unmarshal(data, &r)

View File

@@ -15,7 +15,7 @@
<div id="controls"> <div id="controls">
<div class="control-block"> <div class="control-block">
<label for="in-echo">Echo:</label> <label for="in-echo">Echo:</label>
<input type="text" id="in-echo" class="form-control" /> <input type="text" id="in-echo" class="form-control" /><br />
<div class="btn-group btn-group-justified"> <div class="btn-group btn-group-justified">
<a href="javascript:void(0);" id="btn-echo" class="btn btn-default ctrl-btn">Echo</a> <a href="javascript:void(0);" id="btn-echo" class="btn btn-default ctrl-btn">Echo</a>
<a href="javascript:void(0);" id="btn-echo-bin" class="btn btn-default ctrl-btn">Echo Binary</a> <a href="javascript:void(0);" id="btn-echo-bin" class="btn btn-default ctrl-btn">Echo Binary</a>
@@ -23,9 +23,24 @@
</div> </div>
</div> </div>
<div class="control-block">
<label for="in-socketcast-socket">Socketcast:</label>
<div class="well well-sm">
<label for="in-socketcast-socket">Socket ID:</label>
<input type="text" id="in-socketcast-socket" class="form-control" />
<label for="in-socketcast-data">Socketcast Data:</label>
<input type="text" id="in-socketcast-data" class="form-control" /><br />
<div class="btn-group btn-group-justified">
<a href="javascript:void(0);" id="btn-socketcast" class="btn btn-default ctrl-btn">Socketcast</a>
<a href="javascript:void(0);" id="btn-socketcast-bin" class="btn btn-default ctrl-btn">Cast Binary</a>
<a href="javascript:void(0);" id="btn-socketcast-json" class="btn btn-default ctrl-btn">Cast JSON</a>
</div>
</div>
</div>
<div class="control-block"> <div class="control-block">
<label for="in-broadcast">Broadcast:</label> <label for="in-broadcast">Broadcast:</label>
<input type="text" id="in-broadcast" class="form-control" /> <input type="text" id="in-broadcast" class="form-control" /><br />
<div class="btn-group btn-group-justified"> <div class="btn-group btn-group-justified">
<a href="javascript:void(0);" id="btn-broadcast" class="btn btn-default ctrl-btn">Broadcast</a> <a href="javascript:void(0);" id="btn-broadcast" class="btn btn-default ctrl-btn">Broadcast</a>
<a href="javascript:void(0);" id="btn-broadcast-bin" class="btn btn-default ctrl-btn">Broadcast Binary</a> <a href="javascript:void(0);" id="btn-broadcast-bin" class="btn btn-default ctrl-btn">Broadcast Binary</a>
@@ -56,8 +71,8 @@
<div class="control-block well well-sm"> <div class="control-block well well-sm">
<label for="in-roomcast-room">Room:</label> <label for="in-roomcast-room">Room:</label>
<input type="text" id="in-roomcast-room" class="form-control" /> <input type="text" id="in-roomcast-room" class="form-control" />
<label for="in-roomcast-data">Roomcast:</label> <label for="in-roomcast-data">Roomcast Data:</label>
<input type="text" id="in-roomcast-data" class="form-control" /> <input type="text" id="in-roomcast-data" class="form-control" /><br />
<div class="btn-group btn-group-justified"> <div class="btn-group btn-group-justified">
<a href="javascript:void(0);" id="btn-roomcast" class="btn btn-default ctrl-btn">Roomcast</a> <a href="javascript:void(0);" id="btn-roomcast" class="btn btn-default ctrl-btn">Roomcast</a>
<a href="javascript:void(0);" id="btn-roomcast-bin" class="btn btn-default ctrl-btn">Roomcast Binary</a> <a href="javascript:void(0);" id="btn-roomcast-bin" class="btn btn-default ctrl-btn">Roomcast Binary</a>

View File

@@ -21,6 +21,8 @@
inEcho = get('#in-echo'), inEcho = get('#in-echo'),
inJoin = get('#in-join'), inJoin = get('#in-join'),
inLeave = get('#in-leave'), inLeave = get('#in-leave'),
inSocketcastID = get('#in-socketcast-socket'),
inSocketcastData = get('#in-socketcast-data'),
inBroadcast = get('#in-broadcast'), inBroadcast = get('#in-broadcast'),
inRoomcastRoom = get('#in-roomcast-room'), inRoomcastRoom = get('#in-roomcast-room'),
inRoomcastData = get('#in-roomcast-data'), inRoomcastData = get('#in-roomcast-data'),
@@ -29,6 +31,9 @@
btnEchoJSON = get('#btn-echo-json'), btnEchoJSON = get('#btn-echo-json'),
btnJoin = get('#btn-join'), btnJoin = get('#btn-join'),
btnLeave = get('#btn-leave'), btnLeave = get('#btn-leave'),
btnSocketcast = get('#btn-socketcast'),
btnSocketcastBin = get('#btn-socketcast-bin'),
btnSocketcastJSON = get('#btn-socketcast-json'),
btnBroadcast = get('#btn-broadcast'), btnBroadcast = get('#btn-broadcast'),
btnBroadcastBin = get('#btn-broadcast-bin'), btnBroadcastBin = get('#btn-broadcast-bin'),
btnBroadcastJSON = get('#btn-broadcast-json'), btnBroadcastJSON = get('#btn-broadcast-json'),
@@ -73,6 +78,18 @@
addMessage('got JSON: '+JSON.stringify(data)); 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){ ws.on('roomcast', function(data){
addMessage('got roomcast: '+data); addMessage('got roomcast: '+data);
}); });
@@ -148,6 +165,21 @@
ws.emit('broadcastjson', {message: inBroadcast.value}); 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(){ btnRoomcast.addEventListener('click', function(){
if(inRoomcastRoom.value.length === 0 || inRoomcastData.value.length === 0) return; if(inRoomcastRoom.value.length === 0 || inRoomcastData.value.length === 0) return;
ws.emit('roomcast', JSON.stringify({room: inRoomcastRoom.value, data: inRoomcastData.value})); ws.emit('roomcast', JSON.stringify({room: inRoomcastRoom.value, data: inRoomcastData.value}));

View File

@@ -176,6 +176,11 @@ func (serv *SocketServer) Broadcast(eventName string, data interface{}) {
serv.hub.broadcast(&BroadcastMsg{eventName, data}) 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 //loop handles all the coordination between new sockets
//reading frames and dispatching events //reading frames and dispatching events
func (serv *SocketServer) loop(ws *websocket.Conn) { func (serv *SocketServer) loop(ws *websocket.Conn) {
@@ -184,6 +189,8 @@ func (serv *SocketServer) loop(ws *websocket.Conn) {
defer s.Close() defer s.Close()
s.Join("__socket_id:"+s.ID())
serv.l.RLock() serv.l.RLock()
e := serv.onConnectFunc e := serv.onConnectFunc
serv.l.RUnlock() serv.l.RUnlock()

View File

@@ -112,6 +112,11 @@ func (s *Socket) Broadcast(eventName string, data interface{}) {
s.serv.hub.broadcast(&BroadcastMsg{eventName, data}) 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. //Emit dispatches an event to s.
func (s *Socket) Emit(eventName string, data interface{}) error { func (s *Socket) Emit(eventName string, data interface{}) error {
d, msgType := emitData(eventName, data) d, msgType := emitData(eventName, data)

354
vendor/vendor.json vendored
View File

@@ -3,136 +3,136 @@
"ignore": "test", "ignore": "test",
"package": [ "package": [
{ {
"checksumSHA1": "FJNxhMx09x2yXsqUkSS4c3K+U4M=", "checksumSHA1": "GBvfw/CFYzCQwaQfjAHny6LoxBY=",
"path": "github.com/dvsekhvalnov/jose2go", "path": "github.com/dvsekhvalnov/jose2go",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "X38qrRzL+rPyO4xZhm16ftyLkXs=", "checksumSHA1": "X38qrRzL+rPyO4xZhm16ftyLkXs=",
"path": "github.com/dvsekhvalnov/jose2go/aes", "path": "github.com/dvsekhvalnov/jose2go/aes",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "RbRzJ9jDZJnCUKbJJy7e2OSTUro=", "checksumSHA1": "RbRzJ9jDZJnCUKbJJy7e2OSTUro=",
"path": "github.com/dvsekhvalnov/jose2go/arrays", "path": "github.com/dvsekhvalnov/jose2go/arrays",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "uQqU76qm0Q57HnnCEp56r43jGaU=", "checksumSHA1": "uQqU76qm0Q57HnnCEp56r43jGaU=",
"path": "github.com/dvsekhvalnov/jose2go/base64url", "path": "github.com/dvsekhvalnov/jose2go/base64url",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "h/QQYYL/tuXhe8ELZvyk1wKrZz4=", "checksumSHA1": "h/QQYYL/tuXhe8ELZvyk1wKrZz4=",
"path": "github.com/dvsekhvalnov/jose2go/compact", "path": "github.com/dvsekhvalnov/jose2go/compact",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "gjXFjcEV/LZG4U/lgm/CVYvvWOg=", "checksumSHA1": "gjXFjcEV/LZG4U/lgm/CVYvvWOg=",
"path": "github.com/dvsekhvalnov/jose2go/kdf", "path": "github.com/dvsekhvalnov/jose2go/kdf",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "o1OtVBn2DVAG07K6teBpkUNjqkM=", "checksumSHA1": "o1OtVBn2DVAG07K6teBpkUNjqkM=",
"path": "github.com/dvsekhvalnov/jose2go/keys/ecc", "path": "github.com/dvsekhvalnov/jose2go/keys/ecc",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "gAEKTUiQk9JoMonf1G508SXpLw4=", "checksumSHA1": "gAEKTUiQk9JoMonf1G508SXpLw4=",
"path": "github.com/dvsekhvalnov/jose2go/padding", "path": "github.com/dvsekhvalnov/jose2go/padding",
"revision": "3d3ad9f03cde980ebbfd2613dbde3f7c774c01a0", "revision": "7f401d37b68add7a984afa734c3751a4e91c3502",
"revisionTime": "2018-05-07T07:32:26Z" "revisionTime": "2018-08-29T12:41:32Z"
}, },
{ {
"checksumSHA1": "Mom4aDBDTlunU3+qc3QQP/r48OE=", "checksumSHA1": "cmthqHHbFaaVPxOgj3osQWe2bEU=",
"path": "github.com/go-redis/redis", "path": "github.com/go-redis/redis",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "L/n8TwOiRwhhL2TvFNafxB6rAwY=", "checksumSHA1": "z12gGj6VbVBcPOvof1aCM+DVGRU=",
"path": "github.com/go-redis/redis/internal", "path": "github.com/go-redis/redis/internal",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "GQZsUVg/+6UpQAYpc4luMvMutSI=", "checksumSHA1": "GQZsUVg/+6UpQAYpc4luMvMutSI=",
"path": "github.com/go-redis/redis/internal/consistenthash", "path": "github.com/go-redis/redis/internal/consistenthash",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "GE9tg94JwCzMbBwn3Q2LaFs5Rx0=", "checksumSHA1": "l66eTZiJqueypc56HXCakGDm784=",
"path": "github.com/go-redis/redis/internal/hashtag", "path": "github.com/go-redis/redis/internal/hashtag",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "AtcctlDri3zLh6U5sDnT4NULEtw=", "checksumSHA1": "WoUjtqpn00RUnAgZLljk3lWfpSQ=",
"path": "github.com/go-redis/redis/internal/pool", "path": "github.com/go-redis/redis/internal/pool",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "2DZs/18lBWzZk2rxWLVtPUzNXhs=", "checksumSHA1": "zCo0t+gRBbctwyIpkDLrqRFtXew=",
"path": "github.com/go-redis/redis/internal/proto", "path": "github.com/go-redis/redis/internal/proto",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "sjbjSJrTdvyDwNjrWjTNeXgUhaU=", "checksumSHA1": "sjbjSJrTdvyDwNjrWjTNeXgUhaU=",
"path": "github.com/go-redis/redis/internal/singleflight", "path": "github.com/go-redis/redis/internal/singleflight",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "SvyqZrzHTVxCIBoawql2ucvfWLE=", "checksumSHA1": "1PH2NoAB/u3IZmLYyCrIbOzqLZ4=",
"path": "github.com/go-redis/redis/internal/util", "path": "github.com/go-redis/redis/internal/util",
"revision": "18b2e30835f248bffe475cb69c7267204de1bc1e", "revision": "fa76dd0e87967c95e6f7bef33a230ed2c263fe2d",
"revisionTime": "2018-05-17T12:21:51Z" "revisionTime": "2018-10-14T08:27:34Z"
}, },
{ {
"checksumSHA1": "3Xl2eFF4Q+bZkX2RIrIZUkYDRdk=", "checksumSHA1": "GaJLoEuMGnP5ofXvuweAI4wx06U=",
"path": "github.com/golang/protobuf/proto", "path": "github.com/golang/protobuf/proto",
"revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d",
"revisionTime": "2018-05-11T22:16:37Z" "revisionTime": "2018-10-05T18:17:28Z"
}, },
{ {
"checksumSHA1": "tkJPssYejSjuAwE2tdEnoEIj93Q=", "checksumSHA1": "tkJPssYejSjuAwE2tdEnoEIj93Q=",
"path": "github.com/golang/protobuf/ptypes", "path": "github.com/golang/protobuf/ptypes",
"revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d",
"revisionTime": "2018-05-11T22:16:37Z" "revisionTime": "2018-10-05T18:17:28Z"
}, },
{ {
"checksumSHA1": "3eqU9o+NMZSLM/coY5WDq7C1uKg=", "checksumSHA1": "UvYEjI10BRTlBOd8fZvQrJbLpC4=",
"path": "github.com/golang/protobuf/ptypes/any", "path": "github.com/golang/protobuf/ptypes/any",
"revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d",
"revisionTime": "2018-05-11T22:16:37Z" "revisionTime": "2018-10-05T18:17:28Z"
}, },
{ {
"checksumSHA1": "ZIF0rnVzNLluFPqUebtJrVonMr4=", "checksumSHA1": "GKo6mbuEFhhg/SzB4UpvEB64rDA=",
"path": "github.com/golang/protobuf/ptypes/duration", "path": "github.com/golang/protobuf/ptypes/duration",
"revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d",
"revisionTime": "2018-05-11T22:16:37Z" "revisionTime": "2018-10-05T18:17:28Z"
}, },
{ {
"checksumSHA1": "1FJvuT0UllZaaS43kmPlx8oNiCs=", "checksumSHA1": "T42CEYmGiqIXTe36UJ5jLPO33lY=",
"path": "github.com/golang/protobuf/ptypes/timestamp", "path": "github.com/golang/protobuf/ptypes/timestamp",
"revision": "927b65914520a8b7d44f5c9057611cfec6b2e2d0", "revision": "ddf22928ea3c56eb4292a0adbbf5001b1e8e7d0d",
"revisionTime": "2018-05-11T22:16:37Z" "revisionTime": "2018-10-05T18:17:28Z"
}, },
{ {
"checksumSHA1": "GKI0C5VBjSEutOnBQsZv4gXHnrk=", "checksumSHA1": "QdSIO+gp41BqNti0ZDVdXvfDvDo=",
"path": "github.com/gorilla/websocket", "path": "github.com/gorilla/websocket",
"revision": "cd94665a654c1ec903896f2902573b46dd21baa7", "revision": "5ed622c449da6d44c3c8329331ff47a9e5844f71",
"revisionTime": "2018-04-16T03:20:28Z" "revisionTime": "2018-06-05T20:25:52Z"
}, },
{ {
"checksumSHA1": "B3lecX/oKdXvYhYmdUdTz42n4i8=", "checksumSHA1": "B3lecX/oKdXvYhYmdUdTz42n4i8=",
@@ -143,248 +143,266 @@
{ {
"checksumSHA1": "GtamqiJoL7PGHsN454AoffBFMa8=", "checksumSHA1": "GtamqiJoL7PGHsN454AoffBFMa8=",
"path": "golang.org/x/net/context", "path": "golang.org/x/net/context",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "c3H2wB/3tGrw6VqCnlye+kSdoXU=", "checksumSHA1": "pCY4YtdNKVBYRbNvODjx8hj0hIs=",
"path": "golang.org/x/net/http/httpguts", "path": "golang.org/x/net/http/httpguts",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "vmDOV5hpPY+U+rlFZvO0YMlxF54=", "checksumSHA1": "N0asyGBBR6/7qIdCpdb2OxAyv4U=",
"path": "golang.org/x/net/http2", "path": "golang.org/x/net/http2",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "leSW9aM30mATlWs/eeqhQQh/3eo=", "checksumSHA1": "KZniwnfpWkaTPhUQDUTvgex/7y0=",
"path": "golang.org/x/net/http2/hpack", "path": "golang.org/x/net/http2/hpack",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "RcrB7tgYS/GMW4QrwVdMOTNqIU8=", "checksumSHA1": "RcrB7tgYS/GMW4QrwVdMOTNqIU8=",
"path": "golang.org/x/net/idna", "path": "golang.org/x/net/idna",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "UxahDzW2v4mf/+aFxruuupaoIwo=", "checksumSHA1": "UxahDzW2v4mf/+aFxruuupaoIwo=",
"path": "golang.org/x/net/internal/timeseries", "path": "golang.org/x/net/internal/timeseries",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "revisionTime": "2018-10-17T11:24:37Z"
}, },
{ {
"checksumSHA1": "rJn3m/27kO+2IU6KCCZ74Miby+8=", "checksumSHA1": "6ckrK99wkirarIfFNX4+AHWBEHM=",
"path": "golang.org/x/net/trace", "path": "golang.org/x/net/trace",
"revision": "2491c5de3490fced2f6cff376127c667efeed857", "revision": "04a2e542c03f1d053ab3e4d6e5abcd4b66e2be8e",
"revisionTime": "2018-05-11T17:36:03Z" "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=", "checksumSHA1": "CbpjEkkOeh0fdM/V8xKDdI0AA88=",
"path": "golang.org/x/text/secure/bidirule", "path": "golang.org/x/text/secure/bidirule",
"revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81",
"revisionTime": "2018-05-10T04:57:31Z" "revisionTime": "2018-09-21T09:56:34Z"
}, },
{ {
"checksumSHA1": "ziMb9+ANGRJSSIuxYdRbA+cDRBQ=", "checksumSHA1": "ziMb9+ANGRJSSIuxYdRbA+cDRBQ=",
"path": "golang.org/x/text/transform", "path": "golang.org/x/text/transform",
"revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81",
"revisionTime": "2018-05-10T04:57:31Z" "revisionTime": "2018-09-21T09:56:34Z"
}, },
{ {
"checksumSHA1": "1oQpUH9BjCWlqFPDahRH+UMlYy4=", "checksumSHA1": "UwLPI4qEs8cBU0CNw+/99/F1rN0=",
"path": "golang.org/x/text/unicode/bidi", "path": "golang.org/x/text/unicode/bidi",
"revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81",
"revisionTime": "2018-05-10T04:57:31Z" "revisionTime": "2018-09-21T09:56:34Z"
}, },
{ {
"checksumSHA1": "lN2xlA6Utu7tXy2iUoMF2+y9EUE=", "checksumSHA1": "othnvXmmdxkNRyNDxRg5SKwLP8k=",
"path": "golang.org/x/text/unicode/norm", "path": "golang.org/x/text/unicode/norm",
"revision": "5c1cf69b5978e5a34c5f9ba09a83e56acc4b7877", "revision": "4d1c5fb19474adfe9562c9847ba425e7da817e81",
"revisionTime": "2018-05-10T04:57:31Z" "revisionTime": "2018-09-21T09:56:34Z"
}, },
{ {
"checksumSHA1": "2iGEpqdA3KpuCNSWW6KPCIhpXl4=", "checksumSHA1": "MgYFT27I9gfAtSVBpGVqkCYOj3U=",
"path": "google.golang.org/genproto/googleapis/rpc/status", "path": "google.golang.org/genproto/googleapis/rpc/status",
"revision": "7bb2a897381c9c5ab2aeb8614f758d7766af68ff", "revision": "94acd270e44e65579b9ee3cdab25034d33fed608",
"revisionTime": "2018-05-14T19:46:45Z" "revisionTime": "2018-10-16T17:01:14Z"
}, },
{ {
"checksumSHA1": "VAOXPE2tLp/o1Cp7Nib4P9I3LSo=", "checksumSHA1": "5cU6eHFzsIKIyj/oKC28aVBEyMs=",
"path": "google.golang.org/grpc", "path": "google.golang.org/grpc",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "XgBf9DGAD5gsvWR3LLqn3cI5uGQ=", "checksumSHA1": "9KEKKMRAdFnz2sMBXbb33ZLS8Oo=",
"path": "google.golang.org/grpc/balancer", "path": "google.golang.org/grpc/balancer",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "lw+L836hLeH8+//le+C+ycddCCU=", "checksumSHA1": "lw+L836hLeH8+//le+C+ycddCCU=",
"path": "google.golang.org/grpc/balancer/base", "path": "google.golang.org/grpc/balancer/base",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "DJ1AtOk4Pu7bqtUMob95Hw8HPNw=", "checksumSHA1": "DJ1AtOk4Pu7bqtUMob95Hw8HPNw=",
"path": "google.golang.org/grpc/balancer/roundrobin", "path": "google.golang.org/grpc/balancer/roundrobin",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "y2MH/S0g7vnJorDX+hRZNu7qc+c=", "checksumSHA1": "R3tuACGAPyK4lr+oSNt1saUzC0M=",
"path": "google.golang.org/grpc/channelz",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9",
"revisionTime": "2018-05-17T18:11:47Z"
},
{
"checksumSHA1": "j8Qs+yfgwYYOtodB/1bSlbzV5rs=",
"path": "google.golang.org/grpc/codes", "path": "google.golang.org/grpc/codes",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "XH2WYcDNwVO47zYShREJjcYXm0Y=", "checksumSHA1": "XH2WYcDNwVO47zYShREJjcYXm0Y=",
"path": "google.golang.org/grpc/connectivity", "path": "google.golang.org/grpc/connectivity",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "KthiDKNPHMeIu967enqtE4NaZzI=", "checksumSHA1": "5r6NIQY1c3NjwLtxUOo/BcUOqFo=",
"path": "google.golang.org/grpc/credentials", "path": "google.golang.org/grpc/credentials",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "cfLb+pzWB+Glwp82rgfcEST1mv8=", "checksumSHA1": "cfLb+pzWB+Glwp82rgfcEST1mv8=",
"path": "google.golang.org/grpc/encoding", "path": "google.golang.org/grpc/encoding",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "LKKkn7EYA+Do9Qwb2/SUKLFNxoo=", "checksumSHA1": "LKKkn7EYA+Do9Qwb2/SUKLFNxoo=",
"path": "google.golang.org/grpc/encoding/proto", "path": "google.golang.org/grpc/encoding/proto",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
},
{
"checksumSHA1": "n+8rAQxWcf9LPJat2UHq2uVzH20=",
"path": "google.golang.org/grpc/grpclb/grpc_lb_v1/messages",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9",
"revisionTime": "2018-05-17T18:11:47Z"
}, },
{ {
"checksumSHA1": "ZPPSFisPDz2ANO4FBZIft+fRxyk=", "checksumSHA1": "ZPPSFisPDz2ANO4FBZIft+fRxyk=",
"path": "google.golang.org/grpc/grpclog", "path": "google.golang.org/grpc/grpclog",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "Qvf3zdmRCSsiM/VoBv0qB/naHtU=", "checksumSHA1": "LVvnj/+AVrdZMDw0DZ8D/vI24+M=",
"path": "google.golang.org/grpc/internal", "path": "google.golang.org/grpc/internal",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "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", "path": "google.golang.org/grpc/keepalive",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "OjIAi5AzqlQ7kLtdAyjvdgMf6hc=", "checksumSHA1": "OjIAi5AzqlQ7kLtdAyjvdgMf6hc=",
"path": "google.golang.org/grpc/metadata", "path": "google.golang.org/grpc/metadata",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "VvGBoawND0urmYDy11FT+U1IHtU=", "checksumSHA1": "VvGBoawND0urmYDy11FT+U1IHtU=",
"path": "google.golang.org/grpc/naming", "path": "google.golang.org/grpc/naming",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "n5EgDdBqFMa2KQFhtl+FF/4gIFo=", "checksumSHA1": "n5EgDdBqFMa2KQFhtl+FF/4gIFo=",
"path": "google.golang.org/grpc/peer", "path": "google.golang.org/grpc/peer",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "QOKwFz4Zdfxfjs8czgCCtzM5bk4=", "checksumSHA1": "GEq6wwE1qWLmkaM02SjxBmmnHDo=",
"path": "google.golang.org/grpc/resolver", "path": "google.golang.org/grpc/resolver",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "reN7P4MtzZYidpSFocLZJD70EGo=", "checksumSHA1": "grHAHa6Fi3WBsXJpmlEOlRbWWVg=",
"path": "google.golang.org/grpc/resolver/dns", "path": "google.golang.org/grpc/resolver/dns",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "zs9M4xE8Lyg4wvuYvR00XoBxmuw=", "checksumSHA1": "zs9M4xE8Lyg4wvuYvR00XoBxmuw=",
"path": "google.golang.org/grpc/resolver/passthrough", "path": "google.golang.org/grpc/resolver/passthrough",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "YclPgme2gT3S0hTkHVdE1zAxJdo=", "checksumSHA1": "YclPgme2gT3S0hTkHVdE1zAxJdo=",
"path": "google.golang.org/grpc/stats", "path": "google.golang.org/grpc/stats",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "t/NhHuykWsxY0gEBd2WIv5RVBK8=", "checksumSHA1": "hFyBO5vgsMamKhUOSyPCqROk1vo=",
"path": "google.golang.org/grpc/status", "path": "google.golang.org/grpc/status",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "qvArRhlrww5WvRmbyMF2mUfbJew=", "checksumSHA1": "qvArRhlrww5WvRmbyMF2mUfbJew=",
"path": "google.golang.org/grpc/tap", "path": "google.golang.org/grpc/tap",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9", "revision": "491af2b0a46021e419be712e762e78290a333ba9",
"revisionTime": "2018-05-17T18:11:47Z" "revisionTime": "2018-10-17T21:44:02Z"
}, },
{ {
"checksumSHA1": "XpVpTOe7MXB52lg97T1hkt58Mkg=", "checksumSHA1": "bS5Kp6YjeXz4nvvS55CqIBP+HzM=",
"path": "google.golang.org/grpc/transport",
"revision": "3b7feb1847c899055b799fc77693e376cd4ea0d9",
"revisionTime": "2018-05-17T18:11:47Z"
},
{
"checksumSHA1": "1D8GzeoFGUs5FZOoyC2DpQg8c5Y=",
"path": "gopkg.in/mgo.v2", "path": "gopkg.in/mgo.v2",
"revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5",
"revisionTime": "2016-08-18T02:01:20Z" "revisionTime": "2018-07-05T11:36:04Z"
}, },
{ {
"checksumSHA1": "YsB2DChSV9HxdzHaKATllAUKWSI=", "checksumSHA1": "/xRHTpN8WOK4nmZjJ1f96ER1b/o=",
"path": "gopkg.in/mgo.v2/bson", "path": "gopkg.in/mgo.v2/bson",
"revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5",
"revisionTime": "2016-08-18T02:01:20Z" "revisionTime": "2018-07-05T11:36:04Z"
}, },
{ {
"checksumSHA1": "XQsrqoNT1U0KzLxOFcAZVvqhLfk=", "checksumSHA1": "XQsrqoNT1U0KzLxOFcAZVvqhLfk=",
"path": "gopkg.in/mgo.v2/internal/json", "path": "gopkg.in/mgo.v2/internal/json",
"revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5",
"revisionTime": "2016-08-18T02:01:20Z" "revisionTime": "2018-07-05T11:36:04Z"
}, },
{ {
"checksumSHA1": "LEvMCnprte47qdAxWvQ/zRxVF1U=", "checksumSHA1": "LEvMCnprte47qdAxWvQ/zRxVF1U=",
"path": "gopkg.in/mgo.v2/internal/sasl", "path": "gopkg.in/mgo.v2/internal/sasl",
"revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5",
"revisionTime": "2016-08-18T02:01:20Z" "revisionTime": "2018-07-05T11:36:04Z"
}, },
{ {
"checksumSHA1": "+1WDRPaOphSCmRMxVPIPBV4aubc=", "checksumSHA1": "+1WDRPaOphSCmRMxVPIPBV4aubc=",
"path": "gopkg.in/mgo.v2/internal/scram", "path": "gopkg.in/mgo.v2/internal/scram",
"revision": "3f83fa5005286a7fe593b055f0d7771a7dce4655", "revision": "9856a29383ce1c59f308dd1cf0363a79b5bef6b5",
"revisionTime": "2016-08-18T02:01:20Z" "revisionTime": "2018-07-05T11:36:04Z"
} }
], ],
"rootPath": "github.com/raz-varren/sacrificial-socket" "rootPath": "github.com/raz-varren/sacrificial-socket"