You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Received errors like invalid value 66856894559470078 for ID or received yield for call that was not send while playing with your great crate ;) Digged a little bit in and found that you're using rng.gen_range(0..1u64.rotate_left(56) - 1) wich is lager than the definition for IDs from https://wamp-proto.org/wamp_latest_ietf.html#name-ids ( 1 to 2^53 inclusive )
changing it to rng.gen_range(1..1u64.rotate_left(53)) solved all errors with all different WAMP implementations i've tested (python, js, ts, ... ) ;)
To Reproduce
created a simple router in rust:
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
info!("start");
tokio::spawn(async move {
let mut router = Router::new();
router.add_realm("ca.test");
router.listen("127.0.0.1:12345").join();
println!("router ende");
});
println!("Press enter to quit");
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
Ok(())
}
tested with a simple python script (registering a function and calling it)
#from autobahn.twisted.wamp import ApplicationSession
from autobahn.asyncio.wamp import ApplicationSession, ApplicationRunner
import asyncio
class MyComponent(ApplicationSession):
async def onJoin(self, details):
print(details)
# 3. register a procedure for remote calling
def add2(x, y):
return x + y
await self.register(add2, 'ca.test.add2')
# 4. call a remote procedure
while True:
res = await self.call('ca.test.add2', 2, 3)
print("Got result: {}".format(res))
await asyncio.sleep(1)
#self.leave()
def onDisconnect(self):
asyncio.get_event_loop().stop()
if __name__ == "__main__":
print("starte")
runner = ApplicationRunner("ws://127.0.0.1:12345","ca.test")
runner.run(MyComponent)
resulted in (Python)
raise ProtocolError("{0}: invalid value {1} for ID".format(message, value))
autobahn.wamp.exception.ProtocolError: 'registration' in REGISTERED: invalid value 66856894559470078 for ID
Version Information
pulled 0.2.1 from cargo
The text was updated successfully, but these errors were encountered:
Describe the bug
Received errors like
invalid value 66856894559470078 for ID
orreceived yield for call that was not send
while playing with your great crate ;) Digged a little bit in and found that you're usingrng.gen_range(0..1u64.rotate_left(56) - 1)
wich is lager than the definition for IDs from https://wamp-proto.org/wamp_latest_ietf.html#name-ids ( 1 to 2^53 inclusive )changing it to
rng.gen_range(1..1u64.rotate_left(53))
solved all errors with all different WAMP implementations i've tested (python, js, ts, ... ) ;)To Reproduce
created a simple router in rust:
tested with a simple python script (registering a function and calling it)
resulted in (Python)
Version Information
pulled 0.2.1 from cargo
The text was updated successfully, but these errors were encountered: