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.

    Sent from Rodgers Zone!!!

    2


  • @Nguyen-Hien Hay quá, đúng cái mình cần. Cảm ơn nhiều




Log in to reply