@@ -52,6 +52,8 @@ h.connect("http://127.0.0.1:3000");
5252
5353Emit a event
5454``` C++
55+ // emit event name only:
56+ socket->emit ("login");
5557//emit text
5658h.socket()->emit("add user", username);
5759//emit binary
@@ -61,6 +63,10 @@ h.socket()->emit("add user", std::make_shared<std::string>(&buf,100));
6163h.socket()->emit("add user", string_message::create(username), [ &] (message::ptr const& msg)
6264{
6365});
66+ //emit with ` message::list `
67+ message::list li("arg1");
68+ li.push(string_message::create("arg2"));
69+ socket->emit("new va",li);// support io.on("new va",function(arg1,arg2){}); style in server side.
6470```
6571
6672Bind a event
@@ -114,30 +120,10 @@ Sockets are all managed by `client`, no public constructors.
114120You can get it's pointer by `client.socket(namespace)`.
115121
116122#### Event Emitter
117- `void emit(std::string const& name, message::list const& msglist = nullptr, std::function<void (message::ptr const&)> const& ack = nullptr)`
118- Universal event emition interface, backward compatible with all previous `emit` interfaces, can be used with multiple styles:
123+ `void emit(std::string const& name, message::list const& msglist, std::function<void (message::ptr const&)> const& ack)`
124+
125+ Universal event emition interface, by applying implicit conversion magic, it is backward compatible with all previous `emit` interfaces.
119126
120- ```C++
121- //emit event name only:
122- socket->emit("login");
123- //emit with plain text:
124- socket->emit("new message",text);
125- //emit with single binary
126- std::shared_ptr<std::string> voice_buf = std::make_shared<std::string>();
127- ...
128- socket->emit("new voice",voice_buf);
129- //emit with message object and requires an ack.
130- message::ptr array = array_message::create();
131- array->get_vector().push_back(string_message::create("item1"));
132- array->get_vector().push_back(string_message::create("item2"));
133- socket->emit("new arr",array,[](message::ptr const& ack_message){
134- //handle ack
135- });
136- //emit with `message::list`
137- message::list li("arg1");
138- li.push(string_message::create("arg2"));
139- socket->emit("new va",li);// support io.on("new va",function(arg1,arg2){}); style in server side.
140- ```
141127* Items in `message::list` will be expanded in server side event callback function as function arguments.
142128
143129#### Event Bindings
0 commit comments