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-03android教程viewpager自動循環(huán)和手動循環(huán)
這篇文章主要介紹了android的viewpager自動循環(huán)和手動循環(huán)示例,需要的朋友可以參考下2014-02-02Android監(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-01android中Bitmap用法(顯示,保存,縮放,旋轉(zhuǎn))實(shí)例分析
這篇文章主要介紹了android中Bitmap用法,以實(shí)例形式較為詳細(xì)的分析了android中Bitmap操作圖片的顯示、保存、縮放、旋轉(zhuǎn)等相關(guān)技巧,需要的朋友可以參考下2015-09-09