WEB例項 開發乙個聊天室應用

2021-09-11 10:14:15 字數 3235 閱讀 7996

這篇文章介紹如何使用 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 ...