如何解决如何在Ffutter中将Laravel Echo与Socket.io结合使用
我正在开发一个flutter项目,该项目使用Laravel echo和socket.io在后端进行聊天。使用Laravel echo包在Web版本中实现起来非常容易,但是对于Flutter使用什么连接和侦听事件我一无所知。请帮助我!
解决方法
您可以关注this blog。
以下是两种简单的方法:
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);
});
}
编辑: here中还有另一个软件包可以使用。
// 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'));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。