If the channel of name is cached, return the cached one, if not, return a new one.
argument sync will only take effect when the channel is non-cached
Source
factory MessageChannel(String name, {bool sync: false}) {
if (!_channels.containsKey(name))
return new MessageChannel._init(name, sync: sync);
return _channels[name];
}