Skip to content

Instantly share code, notes, and snippets.

@jaouadballat
Created April 4, 2018 20:08
Show Gist options
  • Save jaouadballat/d5574ba8da7c810713940310c6099510 to your computer and use it in GitHub Desktop.
Save jaouadballat/d5574ba8da7c810713940310c6099510 to your computer and use it in GitHub Desktop.
<template>
<div class="card mt-3">
<div class="card-body">
<div class="card-title">
<h3>Chat Group</h3>
<hr>
</div>
<div class="card-body">
<div class="messages" v-for="(msg, index) in messages" :key="index">
<p><span class="font-weight-bold">{{ msg.user }}: </span>{{ msg.message }}</p>
</div>
</div>
</div>
<div class="card-footer">
<form @submit.prevent="sendMessage">
<div class="gorm-group">
<label for="user">User:</label>
<input type="text" v-model="user" class="form-control">
</div>
<div class="gorm-group pb-3">
<label for="message">Message:</label>
<input type="text" v-model="message" class="form-control">
</div>
<button type="submit" class="btn btn-success">Send</button>
</form>
</div>
</div>
</template>
<script>
import io from 'socket.io-client';
export default {
data() {
return {
user: '',
message: '',
messages: [],
socket : io('localhost:3001')
}
},
methods: {
sendMessage(e) {
e.preventDefault();
this.socket.emit('SEND_MESSAGE', {
user: this.user,
message: this.message
});
this.message = ''
}
},
mounted() {
this.socket.on('MESSAGE', (data) => {
this.messages = [...this.messages, data];
// you can also do this.messages.push(data)
});
}
}
</script>
<style>
</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment