我正在开发一个flutter项目,该项目使用Laravel echo和socket.io在后端进行聊天。使用Laravel echo包在Web版本中实现起来非常容易,但是对于Flutter使用什么来连接和监听事件我一无所知。请我需要帮助!
您可以关注此博客。
这是两种简单的方法:
sendSingleChatMessage(ChatMessageModel chatMessageModel, User toChatUser) {
print('Sending Message to: ${toChatUser.name}, ID: ${toChatUser.id}');
if (null == _socket) {
print("Socket is Null, Cannot send message");
return;
}
_socket.emit("single_chat_message", [chatMessageModel.toJson()]);
}
setOnChatMessageReceivedListener(Function onChatMessageReceived) {
_socket.on(ON_MESSAGE_RECEIVED, (data) {
print("Received $data");
onChatMessageReceived(data);
});
}
编辑:还有一个包在使用这里。
// Create echo instance
Echo echo = new Echo({
'broadcaster': 'socket.io',
'client': IO.io,
});
// Listening public channel
echo.channel('public-channel').listen('PublicEvent', (e) {
print(e);
});
// Listening private channel
// Needs auth. See details how to authorize channel below in guides
echo.private('private-channel').listen('PrivateEvent', (e) {
print(e);
});
// Listening presence channel
// Needs auth. See details how to authorize channel below in guides
echo.join('presence-channel')
.here((users) {
print(users);
}).joining((user) {
print(user);
}).leaving((user) {
print(user);
}).listen('PresenceEvent', (e) {
print(e);
});
// Accessing socket instance
echo.socket.on('connect', (_) => print('connected'));
echo.socket.on('disconnect', (_) => print('disconnected'));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句