@@ -52,6 +52,8 @@ h.connect("http://127.0.0.1:3000");
52
52
53
53
Emit a event
54
54
``` C++
55
+ // emit event name only:
56
+ socket->emit ("login");
55
57
//emit text
56
58
h.socket()->emit("add user", username);
57
59
//emit binary
@@ -61,6 +63,10 @@ h.socket()->emit("add user", std::make_shared<std::string>(&buf,100));
61
63
h.socket()->emit("add user", string_message::create(username), [ &] (message::ptr const& msg)
62
64
{
63
65
});
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.
64
70
```
65
71
66
72
Bind a event
@@ -114,30 +120,10 @@ Sockets are all managed by `client`, no public constructors.
114
120
You can get it's pointer by `client.socket(namespace)`.
115
121
116
122
#### 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.
119
126
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
- ```
141
127
* Items in `message::list` will be expanded in server side event callback function as function arguments.
142
128
143
129
#### Event Bindings
0 commit comments