(Breaking): State reworked to avoid having unsafe global mutable state (issue #317). Therefore State types must now implement Clone and will be cloned for each handler where the state is used.
(Breaking): Extensions reworked to avoid Send + Sync requirements on extensions (issue #295). They are now extracted by Cloning. Therefore all the type must implement Clone. An Extension extractor is available to get an extension directly without calling socket.extensions.get().
feat: New HttpExtension types to extract extensions from the http request.
feat: SocketIo can now be used as an extractor. So you can now easily access the entire socket.io context from your handlers.
feat: Dynamic namespaces. You can know set dynamic namespaces with the dyn_ns function. You can specify patterns with the {name} syntax thanks to the matchit crate. The dynamic namespace will create a child namespace for any path that matches the given pattern with the given handler.
engineioxide
deps: bump tokio-tungstenite from 0.21.0 to 0.23.0.
0.14.0
socketioxide
Clone
and will be cloned for each handler where the state is used.Send
+Sync
requirements on extensions (issue #295). They are now extracted byCloning
. Therefore all the type must implementClone
. AnExtension
extractor is available to get an extension directly without callingsocket.extensions.get()
.HttpExtension
types to extract extensions from the http request.SocketIo
can now be used as an extractor. So you can now easily access the entire socket.io context from your handlers.dyn_ns
function. You can specify patterns with the{name}
syntax thanks to the matchit crate. The dynamic namespace will create a child namespace for any path that matches the given pattern with the given handler.engineioxide
tokio-tungstenite
from0.21.0
to0.23.0
.