Flutter使用socketIo實(shí)現(xiàn)實(shí)時(shí)通訊
1. NodeJS
首先使用Node創(chuàng)建一個(gè)服務(wù)端,讓Node來對所有接受到的數(shù)據(jù)進(jìn)行一個(gè)獲取和存儲已經(jīng)轉(zhuǎn)發(fā)。通過在Node中編寫接口來對數(shù)據(jù)進(jìn)行一個(gè)具體的操作。
2. SocketIo
Socket.io 是一個(gè)基于事件驅(qū)動的實(shí)時(shí)通信庫,可以在瀏覽器和服務(wù)器之間建立持久連接,使得雙向?qū)崟r(shí)通信成為可能。它為開發(fā)者提供了簡單易用的 API,支持跨平臺、跨瀏覽器的實(shí)時(shí)通信。
3. 服務(wù)端實(shí)現(xiàn)
3.1 Express
沒有基礎(chǔ)的去看一下Node,方便后續(xù)代碼的學(xué)習(xí)。主要用來對各個(gè)接口的數(shù)據(jù)進(jìn)行渲染和前端頁面的展示。
var express=require('express');
var app=express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
app.set('view engine','ejs');
app.use(express.static('public'));
app.get('/',function(req,res){
res.render('index');
})
server.listen(8000);
//socket.io 配置
io.on('connection', function (socket) {
console.log('建立連接');
socket.on('toServer',function(data){
console.log(data);
socket.emit('toClient',data);
})
});
4 Flutter
@override
void initState() {
this.socket = IO.io('http://192.168.0.11:3000?roomid=1', <String, dynamic>{
'transports': ['websocket'],
'extraHeaders': {'foo': 'bar'} // optional
});
//建立連接的時(shí)候觸發(fā)的方法
socket.on('connect', (_) {
print('connect');
socket.emit('toServer', 'test'); //給服務(wù)器發(fā)送消息
});
//接收到信息的時(shí)候觸發(fā)的方法
socket.on('toClient', (data){
setState(() {
this._messageList.add(
{
"server":true,
'title':data
}
);
});
});
//斷開連接的時(shí)候觸發(fā)的方法
socket.on('disconnect', (_) => print('disconnect'));
super.initState();
}
總結(jié)
到此這篇關(guān)于Flutter使用socketIo實(shí)現(xiàn)實(shí)時(shí)通訊的文章就介紹到這了,更多相關(guān)Flutter socketIo實(shí)時(shí)通訊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程實(shí)現(xiàn)輸入框動態(tài)自動提示功能
這篇文章主要介紹了Android編程實(shí)現(xiàn)輸入框動態(tài)自動提示功能,結(jié)合實(shí)例形式分析了AutoCompleteTextView相關(guān)使用技巧,需要的朋友可以參考下2017-03-03
android教程viewpager自動循環(huán)和手動循環(huán)
這篇文章主要介紹了android的viewpager自動循環(huán)和手動循環(huán)示例,需要的朋友可以參考下2014-02-02
Android監(jiān)聽?wèi)?yīng)用前臺的實(shí)現(xiàn)方案
在 Android 應(yīng)用開發(fā)中,監(jiān)聽?wèi)?yīng)用前臺狀態(tài)是一項(xiàng)核心功能,對于優(yōu)化用戶體驗(yàn)、提升資源管理效率以及實(shí)現(xiàn)系統(tǒng)級功能具有重要意義,以下將從技術(shù)實(shí)現(xiàn)、業(yè)務(wù)場景和系統(tǒng)特性等多個(gè)維度,深入探討幾種主流的實(shí)現(xiàn)方案,需要的朋友可以參考下2025-02-02
詳解Android中實(shí)現(xiàn)Redux方法
本篇文章給大家通過代碼實(shí)例教學(xué)Android中實(shí)現(xiàn)Redux的方法,有需要的朋友跟著參考下吧。2018-01-01
android中Bitmap用法(顯示,保存,縮放,旋轉(zhuǎn))實(shí)例分析
這篇文章主要介紹了android中Bitmap用法,以實(shí)例形式較為詳細(xì)的分析了android中Bitmap操作圖片的顯示、保存、縮放、旋轉(zhuǎn)等相關(guān)技巧,需要的朋友可以參考下2015-09-09

