這篇文章介紹如何使用 vue.js 以及 chatkit 快速的開發乙個聊天室應用,chatkit 提供了一系列 api 用以更方便的開發聊天功能,原始碼位址.
新建乙個 node.js 服務用來建立使用者以及提供 jwt token,安裝依賴yarn add express cors pusher-chatkit-server
啟動服務。
const cors = require('cors')
const express = require('express')
const chatkit = require('pusher-chatkit-server')
const config = require('../config')
const port = config.server_port || 4399
// eslint-disable-next-line
const chatkit = new chatkit.default()
const = req.body
const user =
chatkit
.createuser(user)
.then(() => res.status(201).json())
.catch(error => )
})}) const data = chatkit.authenticate()
res.status(data.status).json(data.body)
}) if (error) else `)
}})複製**
新建乙個 vue.js 專案,建立乙個用來建立新使用者的表單, 表單提交到剛才建立的 express 服務的 user 路由
class
="create__form" @submit.prevent="createuser">
class="create__input"
v-model="newusername"
placeholder="輸入你的名字"
autofocus
required
/>
form>
複製**
async createuser() :$/user`, ,
body: json.stringify()
}).then(res => res.json())
.catch(error => error)
if (result.success) else
}複製**
新建使用者成功後,初始化應用
const chatmanager = new chatkit.chatmanager(:$/auth`
})})
const currentuser = await chatmanager.connect()
const currentroom = await currentuser
.joinroom()
.catch(error => )
currentuser.subscribetoroom(
return user
})this.messages.push(message)}}
})const messages = await currentuser
.fetchmessages()
.catch(error => )
this.currentuser = currentuser
this.currentroom = currentroom
this.users = currentroom.userids.filter(name => name !== currentuser.name).map(name =>
})this.messages = messages
}複製**
進行布局以及ui,使用grid
進行快速布局, 建立使用者列表,訊息列表以及傳送訊息的表單
class="chat__users">
class="user-item"
v-for="user of users"
:key="user.id">
class="name">}span>
class="spot"
:class="">
span>
li>
ul>
複製**
class="chat__messages">
v-for="(message, index) of messages"
:key="index"
:message="message"
:currentuser="currentuser"
/>
ul>
複製**
class="chat__send" @submit.prevent="sendmessage">
class="input"
type="text"
@change="typingmessage"
v-model="newmessage"
autofocus
required
placeholder="說點什麼..."
/>
class="button"
type="submit">傳送button>
form>
複製**
.chat
複製**
使用 chatkit 提供的api即可
sendmessage() )
.then(messageid => )
.catch(error => )
}複製**
開發完成後,使用yarn build
命令將 vue 專案打包,然後使用 express 內建的 static 中介軟體掛載打包後的dist
目錄, 在瀏覽器中開啟express
執行的埠就可以看到效果了,文章只是簡述如何開發,具體實現請看 github 原始碼。
複製**
vue-chat
chatkit docs
build a slack clone with react and pusher chatkit
golang 實現乙個聊天室
最近看了一下go語言,就試著寫了乙個聊天室,練練手而已,但是對於我乙個搞php的來說,go語言對我啟發很大。客服端 package main import fmt net os 定義通道 var ch chan int make chan int 定義暱稱 var nickname string f...
乙個簡單聊天室的建立
經過乙個階段的asp學習,下面我們結合所學過的內容建立乙個最簡單的聊天室,雖然很簡單,但是大家可以通過他來掌握乙個聊天室建立的基本過程,並且可以不斷的完善其功能.下面介紹其主要步驟 3,最後把txtwho的內容初始化.也就是當瀏覽者輸入過一次自己的姓名以後就不用再次輸入了,為了區分每個不同的瀏覽者,...
用WCF建立乙個聊天室
服務端 1 先定義介面 namespace reply 2 實現介面 在雲伺服器部署的時候,需要用內網位址來部署,然後用外網的位址開啟,得到乙個該服務的位址,然後引用到客戶端。客戶端 1 主介面 using system using system.collections.generic using ...