91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue.js使用Socket.IO的方法

發布時間:2021-02-02 15:11:16 來源:億速云 閱讀:1423 作者:小新 欄目:web開發

這篇文章主要介紹了Vue.js使用Socket.IO的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1、什么是 Socket.IO?

Socket.IO 是一個WebSocket庫,可以在瀏覽器和服務器之間實現實時,雙向和基于事件的通信。它包括:Node.js服務器庫、瀏覽器的Javascript客戶端庫。它會自動根據瀏覽器從WebSocket、AJAX長輪詢、Iframe流等等各種方式中選擇最佳的方式來實現網絡實時應用,非常方便和人性化,而且支持的瀏覽器最低達IE5.5

2、Socket.IO 主要特點

Vue.js使用Socket.IO的方法

(1)、支持瀏覽器/Nodejs環境 (2)、支持雙向通信 (3)、API簡單易用 (4)、支持二進制傳輸 (5)、減少傳輸數據量

3、Vue.js 中 Socket.IO的使用

Vue.js使用Socket.IO的方法

(1)客戶端

npm install vue-socket.io --save

main.js添加下列代碼

import VueSocketIO from 'vue-socket.io'
 
Vue.use(new VueSocketIO({
 debug: true,
 // 服務器端地址
 connection: 'http://localhost:3000',
 vuex: {
 }
}))

發送消息和監聽消息

//發送信息給服務端
this.$socket.emit('login',{
 username: 'username',
 password: 'password'
});

//接收服務端的信息
this.sockets.subscribe('relogin', (data) => {
 console.log(data)
})

(2)服務端

Vue.js使用Socket.IO的方法

服務端,我們基于express搭建node服務器。

npm install --save express
npm install --save socket.io

index.js文件

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
 res.send('<h2>你好web秀</h2>');
});
 
io.on('connection',function(socket) {
 //接收數據
 socket.on('login', function (obj) {    
  console.log(obj.username);
  // 發送數據
  socket.emit('relogin', {
  msg: `你好${obj.username}`,
  code: 200
  }); 
 });
});
 
http.listen(3000, function(){
 console.log('listening on *:3000');
});

然后啟動服務端服務

node index.js

客戶端即可查看效果。

4、Socket.IO有哪些事件

Vue.js使用Socket.IO的方法

io.on('connect', onConnect);

function onConnect(socket){

 // 發送給當前客戶端
 socket.emit(
 'hello', 
 'can you hear me?', 
 1, 
 2, 
 'abc'
 );

 // 發送給所有客戶端,除了發送者
 socket.broadcast.emit(
 'broadcast', 
 'hello friends!'
 );

 // 發送給同在 'game' 房間的所有客戶端,除了發送者
 socket.to('game').emit(
 'nice game', 
 "let's play a game"
 );

 // 發送給同在 'game1' 或 'game2' 房間的所有客戶端,除了發送者
 socket.to('game1').to('game2').emit(
 'nice game', 
 "let's play a game (too)"
 );

 // 發送給同在 'game' 房間的所有客戶端,包括發送者
 io.in('game').emit(
 'big-announcement', 
 'the game will start soon'
 );

 // 發送給同在 'myNamespace' 命名空間下的所有客戶端,包括發送者
 io.of('myNamespace').emit(
 'bigger-announcement', 
 'the tournament will start soon'
 );

 // 發送給指定 socketid 的客戶端(私密消息)
 socket.to(<socketid>).emit(
 'hey', 
 'I just met you'
 );

 // 包含回執的消息
 socket.emit(
 'question', 
 'do you think so?', 
 function (answer) {}
 );

 // 不壓縮,直接發送
 socket.compress(false).emit(
 'uncompressed', 
 "that's rough"
 );

 // 如果客戶端還不能接收消息,那么消息可能丟失
 socket.volatile.emit(
 'maybe', 
 'do you really need it?'
 );

 // 發送給當前 node 實例下的所有客戶端(在使用多個 node 實例的情況下)
 io.local.emit(
 'hi', 
 'my lovely babies'
 );
};

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Vue.js使用Socket.IO的方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵阳市| 谷城县| 九江县| 利川市| 荥经县| 平塘县| 全州县| 东台市| 密山市| 年辖:市辖区| 图木舒克市| 吴桥县| 雅安市| 临颍县| 宽甸| 芜湖市| 远安县| 白朗县| 高碑店市| 昌乐县| 岐山县| 高雄县| 阿克陶县| 柏乡县| 青阳县| 铁力市| 元朗区| 拜城县| 周至县| 景洪市| 三亚市| 铜陵市| 永和县| 石泉县| 瑞安市| 二连浩特市| 廉江市| 辛集市| 宝丰县| 合作市| 广灵县|