diff --git a/_examples/basic/browser/app.js b/_examples/basic/browserify/app.js similarity index 100% rename from _examples/basic/browser/app.js rename to _examples/basic/browserify/app.js diff --git a/_examples/basic/browser/bundle.js b/_examples/basic/browserify/bundle.js similarity index 100% rename from _examples/basic/browser/bundle.js rename to _examples/basic/browserify/bundle.js diff --git a/_examples/basic/browser/index.html b/_examples/basic/browserify/index.html similarity index 100% rename from _examples/basic/browser/index.html rename to _examples/basic/browserify/index.html diff --git a/_examples/basic/browser/package.json b/_examples/basic/browserify/package.json similarity index 94% rename from _examples/basic/browser/package.json rename to _examples/basic/browserify/package.json index f1136cc..a45e368 100644 --- a/_examples/basic/browser/package.json +++ b/_examples/basic/browserify/package.json @@ -9,7 +9,7 @@ "build": "npm run-script browserify && npm run-script minifyES6" }, "dependencies": { - "neffos.js": "^0.1.31" + "neffos.js": "^0.1.32" }, "devDependencies": { "babel-minify": "^0.5.2", diff --git a/_examples/basic/main.go b/_examples/basic/main.go index decd2e6..0ca2a13 100644 --- a/_examples/basic/main.go +++ b/_examples/basic/main.go @@ -49,7 +49,7 @@ var serverAndClientEvents = neffos.Namespaces{ log.Printf("[%s] connected to namespace [%s].", c, msg.Namespace) if !c.Conn.IsClient() && serverJoinRoom { - c.JoinRoom(nil, serverRoomName) + c.JoinRoom(context.TODO(), serverRoomName) } return nil @@ -171,8 +171,8 @@ func startServer() { log.Printf("[%s] disconnected from the server.", c) } - log.Printf("Listening on: %s\nPress CTRL/CMD+C to interrupt.", addr) - http.Handle("/", http.FileServer(http.Dir("./browser"))) + log.Printf("Listening on: http://%s/browserify\nPress CTRL/CMD+C to interrupt.", addr) + http.Handle("/", http.FileServer(http.Dir("./browserify"))) http.Handle(endpoint, server) log.Fatal(http.ListenAndServe(addr, nil)) } @@ -219,7 +219,7 @@ func startClient() { }() // connect to the "default" namespace. - c, err := client.Connect(nil, namespace) + c, err := client.Connect(context.TODO(), namespace) if err != nil { log.Fatal(err) } @@ -236,7 +236,7 @@ askRoom: } roomToJoin := scanner.Text() - room, err = c.JoinRoom(nil, roomToJoin) + room, err = c.JoinRoom(context.TODO(), roomToJoin) if err != nil { log.Fatal(err) } @@ -262,7 +262,7 @@ askRoom: } if text == "leave" { - room.Leave(nil) + room.Leave(context.TODO()) if !serverJoinRoom { goto askRoom } diff --git a/_examples/browser/README.md b/_examples/browser/README.md index 05708d7..ed21fa6 100644 --- a/_examples/browser/README.md +++ b/_examples/browser/README.md @@ -1,3 +1,3 @@ # Client-side for browser and nodejs -Navigate to and instead. \ No newline at end of file +Navigate through . diff --git a/_examples/example/main.go b/_examples/example/main.go index d90ae63..0fde8fc 100644 --- a/_examples/example/main.go +++ b/_examples/example/main.go @@ -38,13 +38,12 @@ var handler = neffos.WithTimeout{ return nil } - err := fmt.Errorf("Server says that you are not allowed here") - /* comment this to see that the server-side will + /* Uncomment this to see that the server-side will no allow to for this socket to be connected to the "default" namespace and an error will be logged to the client. */ - err = nil + // return fmt.Errorf("Server says that you are not allowed here") - return err + return nil }, neffos.OnNamespaceConnected: func(c *neffos.NSConn, msg neffos.Message) error { if !c.Conn.IsClient() { @@ -61,22 +60,18 @@ var handler = neffos.WithTimeout{ return nil } - err := fmt.Errorf("Server says that you are not allowed to be disconnected yet") - /* here if you comment this, the return error will mean that + /* here if you uncomment this, the return error will mean that the disconnect message from client-side will be ignored from the server and the connection would be still available to send message to the "default" namespace it will not be disconnected.*/ - err = nil - - if err == nil { - log.Printf("[%s] disconnected from [%s].", c.Conn.ID(), msg.Namespace) - } + // return fmt.Errorf("Server says that you are not allowed to be disconnected yet") + log.Printf("[%s] disconnected from [%s].", c.Conn.ID(), msg.Namespace) if c.Conn.IsClient() { os.Exit(0) } - return err + return nil }, "chat": func(c *neffos.NSConn, msg neffos.Message) error { if !c.Conn.IsClient() { @@ -158,7 +153,7 @@ func server(upgrader neffos.Upgrader) { log.Printf("[%s] connected to server.", c.ID()) if serverHandlesConnectNamespace { - ns, err := c.Connect(nil, namespace) + ns, err := c.Connect(context.TODO(), namespace) if err != nil { panic(err) } @@ -205,7 +200,7 @@ func server(upgrader neffos.Upgrader) { text := scanner.Bytes() if bytes.Equal(text, []byte("force disconnect")) { srv.Do(func(c *neffos.Conn) { - c.DisconnectAll(nil) + c.DisconnectAll(context.TODO()) // c.Namespace(namespace).Disconnect(nil) }, false) } else { @@ -254,9 +249,9 @@ func client(dialer neffos.Dialer) { text := scanner.Bytes() if bytes.Equal(text, []byte("exit")) { - if err := c.Disconnect(nil); err != nil { - // log.Printf("from server: %v", err) - } + // if err := c.Disconnect(context.TODO()); err != nil { + // log.Printf("from server: %v", err) + // } continue } diff --git a/_examples/protobuf/browser/package.json b/_examples/protobuf/browser/package.json index eba3fbe..33bc993 100644 --- a/_examples/protobuf/browser/package.json +++ b/_examples/protobuf/browser/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "google-protobuf": "latest", - "neffos.js": "^0.1.31", + "neffos.js": "^0.1.32", "protobufjs": "latest" }, "devDependencies": { diff --git a/_examples/protobuf/main.go b/_examples/protobuf/main.go index c2980dd..c42c4d3 100644 --- a/_examples/protobuf/main.go +++ b/_examples/protobuf/main.go @@ -3,6 +3,7 @@ package main import ( "bufio" "bytes" + "context" "fmt" "log" "net/http" @@ -11,11 +12,11 @@ import ( "github.com/kataras/neffos" "github.com/kataras/neffos/gorilla" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" ) // Generate proto for Go: -// protoc --go_out=. user_message.proto +// protoc --go_out=. --go_opt=paths=source_relative user_message.proto // go build // // Windows @@ -136,7 +137,7 @@ const testHelloBinaryWithSeps = false func startClient() { // init the websocket connection by dialing the server. - client, err := neffos.Dial(nil, gorilla.DefaultDialer, addr+endpoint, serverAndClientEvents) + client, err := neffos.Dial(context.TODO(), gorilla.DefaultDialer, addr+endpoint, serverAndClientEvents) if err != nil { log.Fatal(err) } @@ -147,7 +148,7 @@ func startClient() { }() // connect to the "default" namespace. - c, err := client.Connect(nil, namespace) + c, err := client.Connect(context.TODO(), namespace) if err != nil { log.Fatal(err) } diff --git a/_examples/protobuf/user_message.pb.go b/_examples/protobuf/user_message.pb.go index 56ff531..f5a90ff 100644 --- a/_examples/protobuf/user_message.pb.go +++ b/_examples/protobuf/user_message.pb.go @@ -1,85 +1,151 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.12 // source: user_message.proto package main import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type UserMessage struct { - Username string `protobuf:"bytes,1,opt,name=Username,proto3" json:"Username,omitempty"` - Text string `protobuf:"bytes,2,opt,name=Text,proto3" json:"Text,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *UserMessage) Reset() { *m = UserMessage{} } -func (m *UserMessage) String() string { return proto.CompactTextString(m) } -func (*UserMessage) ProtoMessage() {} -func (*UserMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_7965fb6944d08275, []int{0} + Username string `protobuf:"bytes,1,opt,name=Username,proto3" json:"Username,omitempty"` + Text string `protobuf:"bytes,2,opt,name=Text,proto3" json:"Text,omitempty"` } -func (m *UserMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserMessage.Unmarshal(m, b) -} -func (m *UserMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserMessage.Marshal(b, m, deterministic) -} -func (m *UserMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserMessage.Merge(m, src) +func (x *UserMessage) Reset() { + *x = UserMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_user_message_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserMessage) XXX_Size() int { - return xxx_messageInfo_UserMessage.Size(m) + +func (x *UserMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserMessage) XXX_DiscardUnknown() { - xxx_messageInfo_UserMessage.DiscardUnknown(m) + +func (*UserMessage) ProtoMessage() {} + +func (x *UserMessage) ProtoReflect() protoreflect.Message { + mi := &file_user_message_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserMessage proto.InternalMessageInfo +// Deprecated: Use UserMessage.ProtoReflect.Descriptor instead. +func (*UserMessage) Descriptor() ([]byte, []int) { + return file_user_message_proto_rawDescGZIP(), []int{0} +} -func (m *UserMessage) GetUsername() string { - if m != nil { - return m.Username +func (x *UserMessage) GetUsername() string { + if x != nil { + return x.Username } return "" } -func (m *UserMessage) GetText() string { - if m != nil { - return m.Text +func (x *UserMessage) GetText() string { + if x != nil { + return x.Text } return "" } -func init() { - proto.RegisterType((*UserMessage)(nil), "main.UserMessage") +var File_user_message_proto protoreflect.FileDescriptor + +var file_user_message_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3d, 0x0a, 0x0b, 0x55, 0x73, + 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x65, 0x78, 0x74, 0x42, 0x07, 0x5a, 0x05, 0x2f, 0x6d, 0x61, + 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_user_message_proto_rawDescOnce sync.Once + file_user_message_proto_rawDescData = file_user_message_proto_rawDesc +) + +func file_user_message_proto_rawDescGZIP() []byte { + file_user_message_proto_rawDescOnce.Do(func() { + file_user_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_message_proto_rawDescData) + }) + return file_user_message_proto_rawDescData } -func init() { proto.RegisterFile("user_message.proto", fileDescriptor_7965fb6944d08275) } - -var fileDescriptor_7965fb6944d08275 = []byte{ - // 98 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0x2d, 0x4e, 0x2d, - 0x8a, 0xcf, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, - 0xc9, 0x4d, 0xcc, 0xcc, 0x53, 0xb2, 0xe5, 0xe2, 0x0e, 0x2d, 0x4e, 0x2d, 0xf2, 0x85, 0x48, 0x09, - 0x49, 0x71, 0x71, 0x80, 0xb8, 0x79, 0x89, 0xb9, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, - 0x70, 0xbe, 0x90, 0x10, 0x17, 0x4b, 0x48, 0x6a, 0x45, 0x89, 0x04, 0x13, 0x58, 0x1c, 0xcc, 0x4e, - 0x62, 0x03, 0x9b, 0x65, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x40, 0x7a, 0xd9, 0x61, 0x00, - 0x00, 0x00, +var file_user_message_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_user_message_proto_goTypes = []interface{}{ + (*UserMessage)(nil), // 0: main.UserMessage +} +var file_user_message_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_user_message_proto_init() } +func file_user_message_proto_init() { + if File_user_message_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_user_message_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_user_message_proto_goTypes, + DependencyIndexes: file_user_message_proto_depIdxs, + MessageInfos: file_user_message_proto_msgTypes, + }.Build() + File_user_message_proto = out.File + file_user_message_proto_rawDesc = nil + file_user_message_proto_goTypes = nil + file_user_message_proto_depIdxs = nil } diff --git a/_examples/protobuf/user_message.proto b/_examples/protobuf/user_message.proto index f9bf3b3..260fab0 100644 --- a/_examples/protobuf/user_message.proto +++ b/_examples/protobuf/user_message.proto @@ -5,4 +5,6 @@ package main; message UserMessage { string Username = 1; string Text = 2; -} \ No newline at end of file +} + +option go_package = "/main"; \ No newline at end of file diff --git a/_examples/scale-out/browser/package.json b/_examples/scale-out/browser/package.json index 5a39edf..5672a3a 100644 --- a/_examples/scale-out/browser/package.json +++ b/_examples/scale-out/browser/package.json @@ -8,7 +8,7 @@ "build": "npm run-script browserify && npm run-script minifyES6" }, "dependencies": { - "neffos.js": "^0.1.31" + "neffos.js": "^0.1.32" }, "devDependencies": { "babel-minify": "latest", diff --git a/_examples/scale-out/go.mod b/_examples/scale-out/go.mod deleted file mode 100644 index edf9286..0000000 --- a/_examples/scale-out/go.mod +++ /dev/null @@ -1,24 +0,0 @@ -module app - -go 1.19 - -require github.com/kataras/neffos v0.0.21 - -require ( - github.com/gobwas/httphead v0.1.0 // indirect - github.com/gobwas/pool v0.2.1 // indirect - github.com/gobwas/ws v1.1.0 // indirect - github.com/iris-contrib/go.uuid v2.0.0+incompatible // indirect - github.com/klauspost/compress v1.15.15 // indirect - github.com/kr/pretty v0.3.1 // indirect - github.com/mediocregopher/radix/v3 v3.8.1 // indirect - github.com/minio/highwayhash v1.0.2 // indirect - github.com/nats-io/jwt/v2 v2.3.0 // indirect - github.com/nats-io/nats.go v1.23.0 // indirect - github.com/nats-io/nkeys v0.3.0 // indirect - github.com/nats-io/nuid v1.0.1 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect -) diff --git a/_examples/scale-out/go.sum b/_examples/scale-out/go.sum deleted file mode 100644 index 175c17f..0000000 --- a/_examples/scale-out/go.sum +++ /dev/null @@ -1,61 +0,0 @@ -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= -github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= -github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= -github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= -github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/iris-contrib/go.uuid v2.0.0+incompatible h1:XZubAYg61/JwnJNbZilGjf3b3pB80+OQg2qf6c8BfWE= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/kataras/neffos v0.0.21 h1:UwN/F44jlqdtgFI29y3VhA7IlJ4JbK3UjCbTDg1pYoo= -github.com/kataras/neffos v0.0.21/go.mod h1:FeGka8lu8cjD2H+0OpBvW8c6xXawy3fj5VX6xcIJ1Fg= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mediocregopher/radix/v3 v3.8.1 h1:rOkHflVuulFKlwsLY01/M2cM2tWCjDoETcMqKbAWu1M= -github.com/mediocregopher/radix/v3 v3.8.1/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= -github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= -github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= -github.com/nats-io/nats-server/v2 v2.9.11 h1:4y5SwWvWI59V5mcqtuoqKq6L9NDUydOP3Ekwuwl8cZI= -github.com/nats-io/nats.go v1.23.0 h1:lR28r7IX44WjYgdiKz9GmUeW0uh/m33uD3yEjLZ2cOE= -github.com/nats-io/nats.go v1.23.0/go.mod h1:ki/Scsa23edbh8IRZbCuNXR9TDcbvfaSijKtaqQgw+Q= -github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= -github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/_examples/scale-out/main.go b/_examples/scale-out/main.go index d1802bd..ec88088 100644 --- a/_examples/scale-out/main.go +++ b/_examples/scale-out/main.go @@ -2,6 +2,7 @@ package main import ( "bufio" + "context" "encoding/json" "fmt" "log" @@ -131,7 +132,7 @@ func (u *userMessage) Unmarshal(b []byte) error { } func askClient(server *neffos.Server, toID string) string { - response, err := server.Ask(nil, neffos.Message{ + response, err := server.Ask(context.TODO(), neffos.Message{ To: toID, Namespace: namespace, Event: "onAsk", @@ -304,7 +305,7 @@ func startClient() { // init the websocket connection by dialing the server. client, err := neffos.Dial( // Optional context cancelation and deadline for dialing. - nil, + context.TODO(), // The underline dialer, can be also a gobwas.Dialer/DefautlDialer or a gorilla.Dialer/DefaultDialer. // Here we wrap a custom gobwas dialer in order to send the username among, on the handshake state, // see `startServer().server.IDGenerator`. @@ -326,7 +327,7 @@ func startClient() { }() // connect to the "default" namespace. - c, err := client.Connect(nil, namespace) + c, err := client.Connect(context.TODO(), namespace) if err != nil { log.Fatal(err) } @@ -337,7 +338,7 @@ askRoom: } roomToJoin := scanner.Text() - room, err := c.JoinRoom(nil, roomToJoin) + room, err := c.JoinRoom(context.TODO(), roomToJoin) if err != nil { log.Fatal(err) } @@ -357,7 +358,7 @@ askRoom: } if text == "leave" { - room.Leave(nil) + room.Leave(context.TODO()) goto askRoom } diff --git a/_examples/stress-test/broadcasting-1/main.go b/_examples/stress-test/broadcasting-1/main.go index ca65a81..943e984 100644 --- a/_examples/stress-test/broadcasting-1/main.go +++ b/_examples/stress-test/broadcasting-1/main.go @@ -1,6 +1,7 @@ package main import ( + "context" "log" "net/http" "sync" @@ -140,12 +141,12 @@ var dialer = gorilla.Dialer(&gorilla.Options{}, http.Header{"X-Username": []stri var connectedN uint32 func startClient(wg *sync.WaitGroup, wgClose *sync.WaitGroup) { - client, err := neffos.Dial(nil, dialer, "ws://localhost:8080", clientEvents) + client, err := neffos.Dial(context.TODO(), dialer, "ws://localhost:8080", clientEvents) if err != nil { log.Fatal(err) } - _, err = client.Connect(nil, namespace) + _, err = client.Connect(context.TODO(), namespace) if err != nil { log.Fatal(err) } diff --git a/_examples/struct-handler/main.go b/_examples/struct-handler/main.go index 7c655e6..a2f224b 100644 --- a/_examples/struct-handler/main.go +++ b/_examples/struct-handler/main.go @@ -1,6 +1,7 @@ package main import ( + "context" "log" "net/http" "os" @@ -115,12 +116,12 @@ func startClient() { // or leave it empty for empty namespace. SetNamespace("default") - client, err := neffos.Dial(nil, gobwas.DefaultDialer, "ws://localhost:8080", events) + client, err := neffos.Dial(context.TODO(), gobwas.DefaultDialer, "ws://localhost:8080", events) if err != nil { panic(err) } - c, err := client.Connect(nil, "default") + c, err := client.Connect(context.TODO(), "default") if err != nil { panic(err) } diff --git a/conn.go b/conn.go index 97f6705..4f6c093 100644 --- a/conn.go +++ b/conn.go @@ -950,6 +950,7 @@ func (c *Conn) ask(ctx context.Context, msg Message, mustWaitOnlyTheNextMessage if ctx == nil { ctx = context.TODO() + } else if ctx == context.TODO() { } else { if deadline, has := ctx.Deadline(); has { if deadline.Before(time.Now().Add(-1 * time.Second)) { diff --git a/conn_namespace_test.go b/conn_namespace_test.go index bf4a111..ec7f7c9 100644 --- a/conn_namespace_test.go +++ b/conn_namespace_test.go @@ -32,7 +32,7 @@ func TestJoinAndLeaveRoom(t *testing.T) { t.Fatalf("expected Message's room name to be: %s==%s but it's: %s", roomName, room.Name, msg.Room) } - room.Leave(nil) + room.Leave(context.TODO()) wg.Done() } else { @@ -115,7 +115,7 @@ func TestJoinAndLeaveRoomInsideHandler(t *testing.T) { t.Fatalf("expected Message's room name to be: %s==%s but it's: %s", roomName, room.Name, msg.Room) } - room.Leave(nil) + room.Leave(context.TODO()) wg.Done() } else {