Hỏi về test socket io bằng Postman
-
Ý tưởng: Dựng server, khi có kết nối hoặc nhận được lệnh "connection", "atime", "arduino" sẽ gởi data về client đồng thời log ra ngoài màn hình.
Thực hiện: Trình gà, kiến thức góp nhặt.
Khó khăn: test trên Postman không thấy gì cả. Nhờ cộng đồng giúp đỡ. Cảm ơn nhiều.
Code đây ạconst PORT = 3000;
var http = require('http')
var socketio = require('socket.io')var ip = require('ip');
var app = http.createServer();
var io = socketio(app);
app.listen(PORT);
console.log("Server nodejs chay tai dia chi: " + ip.address() + ":" + PORT)function ParseJson(jsondata) {
try { return JSON.parse(jsondata); } catch (error) { return null; }}
function sendTime() {
var json = { ESP8266: 12, soPi: 3.14, time: new Date() } io.sockets.emit('atime', json);};
io.on ('connection', function(socket) {
console.log ("Connected"); socket.emit('welcome', { message: 'Connected !!!!' }); socket.on('connection', function(message) { console.log(message); }); socket.on('atime', function(data) { sendTime(); console.log(data); }); socket.on('arduino', function (data) { io.sockets.emit('arduino', { message: 'R0' }); console.log(data); })});
-
HIện tại postman chưa hỗ trợ websocket nhé. Bạn tìm chrome extention để test. https://chrome.google.com/webstore/detail/smart-websocket-client/omalebghpgejjiaoknljcfmglgbpocdp?utm_source=chrome-app-launcher-info-dialog
-
@Quy-Tran Cảm ơn bạn, nhưng sao bỏ cái localhost:3000 vào khung URL nó không chạy, nó báo như này:
Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. 'localhost' is not allowed.
Giờ phải làm sao tiếp đây , nhờ bạn chỉ rõ hơn. Cảm ơn nhiều.
-
Có lần, mình cũng đã mò mẫm trong Postman và chỉnh chọt gì gì trong code đấy, xong POST thử dạng raw - JSON(applycation/json) thì cũng thấy được server hoạt động, cũng log ra được màn hình, giờ chạy lại thử mà ko đc. Thử mọi trò từ trưa đến giờ luôn rồi đó
-
Bạn dùng socket-io tester ấy. Chứ chưa chắc transport của bạn là ws.
-
@Nguyen-Hien Hay quá, đúng cái mình cần. Cảm ơn nhiều
-
Ngoài ra, bạn có thể dùng:
https://amritb.github.io/socketio-client-tool/#url=aHR0cDovL2xvY2FsaG9zdDo5MDAw&opt=&events=my other event,response