Postingan lainnya
Membuat chat dengan Socket.io dan ExpressJS
Assalamu 'alaikum Permisi agan2 semuanya... pada kali ini saya sedang membuat aplikasi chat dengan NodeJs, ExpressJs dan Socket.io tapi saya sedang kena kendala seperti di bawah ini :
Masalahnya saya sudah panggil source socket io untuk client nya sama seperti di sekolahkoding...
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var socket = io();
tapi kenapa kok di console masih mengeluarkan output io is not defined? mungkin agan2 bisa menjelaskan kepada saya tentang itu, karena saya sendiri masih newbie(Belajar) menggunakan socket.io hehe TrimaKasih
7 Jawaban:
Itu file socket.io.js benar ga pathnya? Kalau filenya ga ada ya jelas ga jalan.
Coba src scriptnya pakai dari cdn https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js
laa itu gan masalahnya... yang socket.io.js itu sudah ane search dan dapatnya itu di scoket.io-client/dist/socket.io.js tapi path nya udah ane sambungin ke situ juga masih tidak bisa
mungkin typo scoket.io-client, mestinya socket.io-client. tapi kalau memang pathnya benar, di wrap dulu sama document ready atau self executing function
<script src="/socket.io-client/dist/socket.io.js"></script>
<script type="text/javascript">
(function() {
var socket = io('server agan');
})();
</script>
Ini Server.js
var express = require('express')
var app = express()
var http = require('http').Server(app)
var io = require('socket.io')(http)
app.use(express.static('public'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/chat.html')
})
io.on('connection', function(socket){
//if there is a new massage
socket.on('newMassage', function(msg){
io.emit('newMassage', msg)
console.log('Ada Pesan' + msg)
})
//if a User Disconnected
socket.on('disconnect', function(msg){
console.log('user telah disconnect')
})
})
app.listen(8000, function(){
console.log('Coba localhost 8000')
})
Ini script dalam HTML nya
<script src="/socket.io-client/dist/socket.io.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var socket = io();
$('form').submit(function(){
socket.emit('newMassage', $('#username').val());
$('#username').val("");
return false;
});
//Menampilkan ke FrontEnd
socket.on('newMassage', function(msg){
$('#massages').append($('<li>').text(msg));
});
</script>
koneknya mesti sama dengan port socket server gan
// server
app.listen(8000, function(){
console.log('Coba localhost 8000')
})
// client
var socket = io('http://localhost:8000')
Servernya Beda Port Sama Client Sepertinya