enmasseio / evejs

Simple, web-based agents running on node.js and in the browser
http://eve.almende.com/
Apache License 2.0
56 stars 17 forks source link

Multiple simulateous messages cannot be sent with websockets #1

Closed AlexDM0 closed 9 years ago

AlexDM0 commented 9 years ago

To reproduce:

edit host2.js

agent2.sayHello('ws://localhost:3000/agents/agent1');

// into

agent2.sayHello('ws://localhost:3000/agents/agent1');
agent2.sayHello('ws://localhost:3000/agents/agent1');
agent2.sayHello('ws://localhost:3000/agents/agent1');

and edit HelloAgent.js line 26 to:

this.send(to, 'Hello ' + to + '!').done();

to see the error:

TypeError: Cannot call method 'push' of undefined
    at C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\lib\transport\websocket\WebSocketConnection.js:65:32
    at doResolve (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\node_modules\promise\lib\core.js:91:5)
    at new Promise (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\node_modules\promise\lib\core.js:71:3)
    at WebSocketConnection.send (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\lib\transport\websocket\WebSocketConnection.js:64:16)
    at HelloAgent.Agent._sendByProtocol (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\lib\Agent.js:233:25)
    at HelloAgent.Agent.send (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\lib\Agent.js:169:19)
    at HelloAgent.sayHello (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\examples\agents\HelloAgent.js:26:8)
    at Object.<anonymous> (C:\Dropbox\Almende\PHPstorm\Enmasse\evejs\examples\transports\websocket\host2.js:18:8)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

Without the edit of HelloAgent, you will only see one reply.

AlexDM0 commented 9 years ago

fixed. Was a typo (callback --> callbacks)