@@ -447,7 +447,7 @@ describe('socket.io', function(){
447
447
var c1 = client ( srv , '/' ) ;
448
448
var c2 = client ( srv , '/abc' ) ;
449
449
} ) ;
450
-
450
+
451
451
it ( 'should be equivalent for "" and "/" on client' , function ( done ) {
452
452
var srv = http ( ) ;
453
453
var sio = io ( srv ) ;
@@ -456,7 +456,7 @@ describe('socket.io', function(){
456
456
} ) ;
457
457
var c1 = client ( srv , '' ) ;
458
458
} ) ;
459
-
459
+
460
460
it ( 'should work with `of` and many sockets' , function ( done ) {
461
461
var srv = http ( ) ;
462
462
var sio = io ( srv ) ;
@@ -800,6 +800,208 @@ describe('socket.io', function(){
800
800
} ) ;
801
801
} ) ;
802
802
803
+ it ( 'should not emit volatile event after regular event (polling)' , function ( done ) {
804
+ var srv = http ( ) ;
805
+ var sio = io ( srv , { transports : [ 'polling' ] } ) ;
806
+
807
+ var counter = 0 ;
808
+ srv . listen ( function ( ) {
809
+ sio . on ( 'connection' , function ( s ) {
810
+ s . emit ( 'ev' , 'data' ) ;
811
+ s . volatile . emit ( 'ev' , 'data' ) ;
812
+ } ) ;
813
+
814
+ var socket = client ( srv , { transports : [ 'polling' ] } ) ;
815
+ socket . on ( 'ev' , function ( ) {
816
+ counter ++ ;
817
+ } ) ;
818
+ } ) ;
819
+
820
+ setTimeout ( function ( ) {
821
+ expect ( counter ) . to . be ( 1 ) ;
822
+ done ( ) ;
823
+ } , 200 ) ;
824
+ } ) ;
825
+
826
+ it ( 'should not emit volatile event after regular event (ws)' , function ( done ) {
827
+ var srv = http ( ) ;
828
+ var sio = io ( srv , { transports : [ 'websocket' ] } ) ;
829
+
830
+ var counter = 0 ;
831
+ srv . listen ( function ( ) {
832
+ sio . on ( 'connection' , function ( s ) {
833
+ s . emit ( 'ev' , 'data' ) ;
834
+ s . volatile . emit ( 'ev' , 'data' ) ;
835
+ } ) ;
836
+
837
+ var socket = client ( srv , { transports : [ 'websocket' ] } ) ;
838
+ socket . on ( 'ev' , function ( ) {
839
+ counter ++ ;
840
+ } ) ;
841
+ } ) ;
842
+
843
+ setTimeout ( function ( ) {
844
+ expect ( counter ) . to . be ( 1 ) ;
845
+ done ( ) ;
846
+ } , 200 ) ;
847
+ } ) ;
848
+
849
+ it ( 'should emit volatile event (polling)' , function ( done ) {
850
+ var srv = http ( ) ;
851
+ var sio = io ( srv , { transports : [ 'polling' ] } ) ;
852
+
853
+ var counter = 0 ;
854
+ srv . listen ( function ( ) {
855
+ sio . on ( 'connection' , function ( s ) {
856
+ // Wait to make sure there are no packets being sent for opening the connection
857
+ setTimeout ( function ( ) {
858
+ s . volatile . emit ( 'ev' , 'data' ) ;
859
+ } , 20 ) ;
860
+ } ) ;
861
+
862
+ var socket = client ( srv , { transports : [ 'polling' ] } ) ;
863
+ socket . on ( 'ev' , function ( ) {
864
+ counter ++ ;
865
+ } ) ;
866
+ } ) ;
867
+
868
+ setTimeout ( function ( ) {
869
+ expect ( counter ) . to . be ( 1 ) ;
870
+ done ( ) ;
871
+ } , 200 ) ;
872
+ } ) ;
873
+
874
+ it ( 'should emit volatile event (ws)' , function ( done ) {
875
+ var srv = http ( ) ;
876
+ var sio = io ( srv , { transports : [ 'websocket' ] } ) ;
877
+
878
+ var counter = 0 ;
879
+ srv . listen ( function ( ) {
880
+ sio . on ( 'connection' , function ( s ) {
881
+ // Wait to make sure there are no packets being sent for opening the connection
882
+ setTimeout ( function ( ) {
883
+ s . volatile . emit ( 'ev' , 'data' ) ;
884
+ } , 20 ) ;
885
+ } ) ;
886
+
887
+ var socket = client ( srv , { transports : [ 'websocket' ] } ) ;
888
+ socket . on ( 'ev' , function ( ) {
889
+ counter ++ ;
890
+ } ) ;
891
+ } ) ;
892
+
893
+ setTimeout ( function ( ) {
894
+ expect ( counter ) . to . be ( 1 ) ;
895
+ done ( ) ;
896
+ } , 200 ) ;
897
+ } ) ;
898
+
899
+ it ( 'should emit only one consecutive volatile event (polling)' , function ( done ) {
900
+ var srv = http ( ) ;
901
+ var sio = io ( srv , { transports : [ 'polling' ] } ) ;
902
+
903
+ var counter = 0 ;
904
+ srv . listen ( function ( ) {
905
+ sio . on ( 'connection' , function ( s ) {
906
+ // Wait to make sure there are no packets being sent for opening the connection
907
+ setTimeout ( function ( ) {
908
+ s . volatile . emit ( 'ev' , 'data' ) ;
909
+ s . volatile . emit ( 'ev' , 'data' ) ;
910
+ } , 20 ) ;
911
+ } ) ;
912
+
913
+ var socket = client ( srv , { transports : [ 'polling' ] } ) ;
914
+ socket . on ( 'ev' , function ( ) {
915
+ counter ++ ;
916
+ } ) ;
917
+ } ) ;
918
+
919
+ setTimeout ( function ( ) {
920
+ expect ( counter ) . to . be ( 1 ) ;
921
+ done ( ) ;
922
+ } , 200 ) ;
923
+ } ) ;
924
+
925
+ it ( 'should emit only one consecutive volatile event (ws)' , function ( done ) {
926
+ var srv = http ( ) ;
927
+ var sio = io ( srv , { transports : [ 'websocket' ] } ) ;
928
+
929
+ var counter = 0 ;
930
+ srv . listen ( function ( ) {
931
+ sio . on ( 'connection' , function ( s ) {
932
+ // Wait to make sure there are no packets being sent for opening the connection
933
+ setTimeout ( function ( ) {
934
+ s . volatile . emit ( 'ev' , 'data' ) ;
935
+ s . volatile . emit ( 'ev' , 'data' ) ;
936
+ } , 20 ) ;
937
+ } ) ;
938
+
939
+ var socket = client ( srv , { transports : [ 'websocket' ] } ) ;
940
+ socket . on ( 'ev' , function ( ) {
941
+ counter ++ ;
942
+ } ) ;
943
+ } ) ;
944
+
945
+ setTimeout ( function ( ) {
946
+ expect ( counter ) . to . be ( 1 ) ;
947
+ done ( ) ;
948
+ } , 200 ) ;
949
+ } ) ;
950
+
951
+ it ( 'should emit regular events after trying a failed volatile event (polling)' , function ( done ) {
952
+ var srv = http ( ) ;
953
+ var sio = io ( srv , { transports : [ 'polling' ] } ) ;
954
+
955
+ var counter = 0 ;
956
+ srv . listen ( function ( ) {
957
+ sio . on ( 'connection' , function ( s ) {
958
+ // Wait to make sure there are no packets being sent for opening the connection
959
+ setTimeout ( function ( ) {
960
+ s . emit ( 'ev' , 'data' ) ;
961
+ s . volatile . emit ( 'ev' , 'data' ) ;
962
+ s . emit ( 'ev' , 'data' ) ;
963
+ } , 20 ) ;
964
+ } ) ;
965
+
966
+ var socket = client ( srv , { transports : [ 'polling' ] } ) ;
967
+ socket . on ( 'ev' , function ( ) {
968
+ counter ++ ;
969
+ } ) ;
970
+ } ) ;
971
+
972
+ setTimeout ( function ( ) {
973
+ expect ( counter ) . to . be ( 2 ) ;
974
+ done ( ) ;
975
+ } , 200 ) ;
976
+ } ) ;
977
+
978
+ it ( 'should emit regular events after trying a failed volatile event (ws)' , function ( done ) {
979
+ var srv = http ( ) ;
980
+ var sio = io ( srv , { transports : [ 'websocket' ] } ) ;
981
+
982
+ var counter = 0 ;
983
+ srv . listen ( function ( ) {
984
+ sio . on ( 'connection' , function ( s ) {
985
+ // Wait to make sure there are no packets being sent for opening the connection
986
+ setTimeout ( function ( ) {
987
+ s . emit ( 'ev' , 'data' ) ;
988
+ s . volatile . emit ( 'ev' , 'data' ) ;
989
+ s . emit ( 'ev' , 'data' ) ;
990
+ } , 20 ) ;
991
+ } ) ;
992
+
993
+ var socket = client ( srv , { transports : [ 'websocket' ] } ) ;
994
+ socket . on ( 'ev' , function ( ) {
995
+ counter ++ ;
996
+ } ) ;
997
+ } ) ;
998
+
999
+ setTimeout ( function ( ) {
1000
+ expect ( counter ) . to . be ( 2 ) ;
1001
+ done ( ) ;
1002
+ } , 200 ) ;
1003
+ } ) ;
1004
+
803
1005
it ( 'should emit message events through `send`' , function ( done ) {
804
1006
var srv = http ( ) ;
805
1007
var sio = io ( srv ) ;
0 commit comments