【发布时间】:2019-06-22 00:24:44
【问题描述】:
我有一个实时项目,由于某种原因,我的 socket.io 客户端错误地接收了从服务器发出的数据。当我控制台记录它时,我不一定会收到错误,它似乎得到了一些不是预期的东西。这是我收到的:
对此很陌生,所以我不知道该日志的含义。为了解释我的代码,它混合了 php 和 zmq,将数据从 wordpress 传输到 javascript,本质上是实时更新帖子。当我记录数据时,socket.io 服务器从事物的 php 端正确接收数据,从套接字服务器到套接字客户端时,似乎有些东西在翻译中丢失了。
socket.io 服务器:
const express = require('express');
const socketIO = require('socket.io');
const http = require('http');
const zmq = require('zmq'),
zSock = zmq.socket('pull');
zSock.bind('tcp://127.0.0.1:5556');
// app set up
const app = express();
const server = http.Server(app);
let port = process.env.PORT || 8080;
// static files
app.use(express.static('app'));
// socket setup & pass SERVER
const io = new socketIO(server);
// on client connect
io.on('connection', (socket) => {
console.log('client has entered...');
//when data is received from php/zmq, emit data
zSock.on('message', (data) => {
console.log('zmq data: ', data);
socket.emit('test', data);
});
});
socket.io 客户端:
import $ from 'jquery';
import io from 'socket.io-client';
const socket = io.connect('http://localhost:8080/');
class ShowTeam {
constructor(){
this.teamOutput = $('.team-random__output');
this.events();
}
events() {
socket.on('test', (data) => {
console.log('connected!');
console.dir(data);
console.log('client data: ' + data);
});
}
}
export default ShowTeam;
这是 socket.io 服务器接收到的正确数据,应该发送给客户端。它应该是一个 html 字符串,去掉了一些引号,因此可以通过 json 正确传输:
zmq data: {"updated_post_content":"<div class= team-container team-container--inline col col--md-2 col--lg-2 col--xl-2><img src=/card-store/wp-content/themes/card-store-theme/images/baseball/team0.jpg> <p>Brianne<p/></div><div class= team-container team-container--inline col col--md-2 col--lg-2 col--xl-2><img src=/card-store/wp-content/themes/card-store-theme/images/baseball/team1.jpg> <p>Brianne<p/></div><div class= team-container team-container--inline col col--md-2 col--lg-2 col--xl-2><img src=/card-store/wp-content/themes/card-store-theme/images/baseball/team2.jpg> <p>Brianne<p/></div><div class= team-container team-container--inline col col--md-2 col--lg-2 col--xl-2><img src=/card-store/wp-content/themes/card-store-theme/images/baseball/team3.jpg> <p>Brianne<p/></div><div class= team-container team-container--inline col col--md-2 col--lg-2 col--xl-2><img src=/card-store/wp-content/themes/card-store-theme/images/baseball/team4.jpg> <p>Brianne<p/></div>"}
【问题讨论】:
标签: javascript php wordpress socket.io zeromq