使用socket.io實(shí)現(xiàn)簡(jiǎn)單聊天室案例
本文實(shí)例為大家分享了socket.io實(shí)現(xiàn)簡(jiǎn)單聊天室的具體代碼,供大家參考,具體內(nèi)容如下
1、客戶端【index.html】代碼:
<body>
<h3>socket簡(jiǎn)例</h3>
<hr>
<div id = 'app'>
<div>
<div>
<ul>
<li v-for = 'item in msgs'>
{{item.name}}說(shuō):{{item.content}}
</li>
</ul>
</div>
<div>
<p><input type="text" v-model = 'msg'><button @click = 'm_send()'>發(fā)送</button></p>
</div>
</div>
</div>
<script type="text/javascript" src = 'https://cdn.bootcss.com/vue/2.5.9/vue.min.js'></script>
<script type="text/javascript" src = 'https://cdn.bootcss.com/socket.io/1.7.3/socket.io.min.js'></script>
<script type="text/javascript">
var _vm = new Vue({
data : {
name : '用戶',
msg : '',
msgs : [],
},
methods : {
m_send : function() {
// 向客戶端發(fā)送消息
socket_client.emit('say_client', {
name : this.name,
content : this.msg
}) ;
this.msg = '' ;
}
}
}).$mount('#app') ;
// socket服務(wù)器
var socket_client = io.connect('http://127.0.0.1:3000') ;
/**
* 監(jiān)聽(tīng)服務(wù)端發(fā)來(lái)的消息
*
* 1、“say_server”是客戶端發(fā)出信息時(shí)的key值
* 2、“res”是客戶端傳來(lái)的value值
*/
socket_client.on('say_server' ,function(res){
console.log('服務(wù)端發(fā)來(lái)的消息為:', res) ;
_vm.msgs.push(res);
});
</script>
</body>
2、服務(wù)端【app.js】代碼:
const http = require('http') ;
const server = http.createServer() ;
// web服務(wù)器
const express = require('express') ;
const app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8888, function () {
console.log('web服務(wù)器成功啟動(dòng)了,IP:127.0.0.1,端口號(hào):8888') ;
});
// socket服務(wù)器
const socketio = require('socket.io') ;
const socket_server = socketio(server) ;
// 建立和客戶端的socket連接
socket_server.on('connection', function(client) {
// console.log(client) ; // 查看連接進(jìn)來(lái)的客戶端對(duì)象內(nèi)容
// console.log(Object.keys(client)) ; // 查看連接進(jìn)來(lái)的客戶端對(duì)象的關(guān)鍵key值
/**
* 監(jiān)聽(tīng)客戶端發(fā)來(lái)的消息
*
* 1、“say_client”是客戶端發(fā)出信息時(shí)的key值
* 2、“res”是客戶端傳來(lái)的value值
*/
client.on('say_client', function(res) {
console.log('客戶端發(fā)來(lái)的消息為:', res) ;
// 向客戶端發(fā)送消息
socket_server.emit('say_server', res) ;
}) ;
}) ;
server.listen(3000, function() {
console.log('socket服務(wù)器成功啟動(dòng)了,IP:127.0.0.1,端口號(hào):3000') ;
}) ;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js高級(jí)編程cluster環(huán)境及源碼調(diào)試詳解
這篇文章主要為大家介紹了Node.js高級(jí)編程cluster環(huán)境及源碼調(diào)試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋
這篇文章主要介紹了node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋的操作方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05
Node.js REPL (交互式解釋器)實(shí)例詳解
這篇文章主要介紹了Node.js REPL (交互式解釋器)實(shí)例詳解的相關(guān)資料,Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個(gè)電腦的環(huán)境,類似 Window 系統(tǒng)的終端,我們可以在終端中輸入命令,并接收系統(tǒng)的響應(yīng),需要的朋友可以參考下2017-08-08
M2實(shí)現(xiàn)Nodejs項(xiàng)目自動(dòng)部署的方法步驟
這篇文章主要介紹了M2實(shí)現(xiàn)Nodejs項(xiàng)目自動(dòng)部署的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
基于uniapp與node.js實(shí)現(xiàn)的微信授權(quán)登錄功能實(shí)例
前端一直是一塊充滿驚喜的土地,不僅是那些富有創(chuàng)造性的頁(yè)面,還有那些驚贊的效果及不斷推出的新技術(shù),下面這篇文章主要給大家介紹了關(guān)于如何基于uniapp與node.js實(shí)現(xiàn)的微信授權(quán)登錄功能的相關(guān)資料,需要的朋友可以參考下2023-05-05
Node.js開(kāi)源應(yīng)用框架HapiJS介紹
這篇文章主要介紹了Node.js開(kāi)源應(yīng)用框架HapiJS介紹,本文講解了HapiJS介紹、HapiJS安裝和項(xiàng)目配置和開(kāi)發(fā)實(shí)例等內(nèi)容,需要的朋友可以參考下2015-01-01
nodejs簡(jiǎn)單實(shí)現(xiàn)中英文翻譯
這篇文章主要介紹了nodejs簡(jiǎn)單實(shí)現(xiàn)中英文翻譯的方法和示例,雖然還存在著不小的問(wèn)題,但是也算是基本能用了,這里推薦給大家。2015-05-05
node.js中的fs.renameSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.renameSync方法使用說(shuō)明,本文介紹了fs.renameSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12

