1

Before I would just

<script>
var socket = io.connect(URL);
socket.emit("hello", {});
</script>

Using Sails.io.js, I tried io.sails.emit("myevent", jsonData) ... but can't do that:

io.socket.emit is not a function

So I do you actually emit a message to the websocket (from the browser) to the room you have joined?

What am I missing?

http://sailsjs.org/documentation/reference/web-sockets/socket-client

zabumba
  • 12,172
  • 16
  • 72
  • 129

1 Answers1

1

Currently there is no method .emit() in sails.socket.

You should use .get(), .post(), .put(), or .delete().

How to use it:

instead of

socket.emit('eventName', jsonData)

now you use:

socket.get('routeToController', jsonData, callback);

Example:

You can create controller SocketController.js

module.exports = {
    myevent: function(req, res) {
        res.json({
            value: 1
        });
    }
};

in config/routes.js add:

'GET /socket/myevent': 'SocketController.myevent'

and now you can call:

socket.get('/socket/myevent', jsonData, function(error, data){
    //data = {value: 1}
});
Bonanza
  • 1,601
  • 14
  • 23