用响应连接套接字io,无法获取数据

织物

我正在尝试从React连接一个组件,以通过socket.io通过实时更新从服务器获取一些数据

在我的快递服务器中,我有以下内容:(部分但相关的部分)

const apiPort = 3000
const server = app.listen(apiPort, () => console.log(`Server running on port ${apiPort}`))

io.on('connection', (client) => {
  client.on('subscribeToTimer', (interval) => {
    console.log('client is subscribing to timer with interval', interval);
    setInterval(() => {
      client.emit('timer', new Date());
    }, interval);
  });
});

io.listen(server);
console.log('listening on port ', apiPort);

然后,我在客户端有一个助手api.js文件:

import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:3000');

function subscribeToTimer(cb) {
  socket.on('timer', timestamp => cb(null, timestamp));
  socket.emit('subscribeToTimer', 1000);
}

export { subscribeToTimer }

然后,我将此方法导入我的react组件中:

import { subscribeToTimer } from './api';

然后,我创建一个状态并尝试更新它:

const [timestamp, setTimeStamp] = useState('no timestamp yet')

  useEffect(() => {
    subscribeToTimer((err, tstamp) => setTimeStamp);
    console.log(timestamp);
  });

在服务器端,我得到控制台日志:

client is subscribing to timer with interval 1000

在客户端它console.logs:

'no timestamp yet'

我没有从套接字获取更新。知道我在做什么错吗?我正在关注一个教程,并将其合并到我的react项目中。

索艾尔·阿什拉夫(Sohail Ashraf)

传递tstampsetTimeStamp函数,您只是传递函数的引用。

尝试这个。

const [timestamp, setTimeStamp] = useState('no timestamp yet')
  useEffect(() => {
    subscribeToTimer((err, tstamp) => setTimeStamp(tstamp));
    console.log(timestamp);
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

套接字 io,无法获取或发出消息

来自分类Dev

Flutter套接字IO无法连接到Node JS套接字IO服务器

来自分类Dev

套接字io房间无法从服务器获取任何数据

来自分类Dev

无法从PHP套接字服务器获取响应

来自分类Dev

无法从PHP套接字服务器获取响应

来自分类Dev

无法获取python https套接字进行连接

来自分类Dev

Python套接字无法连接

来自分类Dev

无法建立套接字连接

来自分类Dev

套接字无法建立连接

来自分类Dev

套接字io在套接字连接时创建房间

来自分类Dev

表达js-套接字io连接

来自分类Dev

套接字无法发送数据

来自分类Dev

套接字无法发送数据

来自分类Dev

套接字io获取断开的套接字的ID

来自分类Dev

获取有关数据响应的TCP套接字特定数据

来自分类Dev

自动更新套接字连接数据?套接字

来自分类Dev

[SMTP:无法连接套接字:fsockopen():无法连接到 ssl://smtp.gmail.com:465(未知错误)(代码:-1,响应:)]

来自分类Dev

用SaltStack解决:initctl:无法连接到Upstart:无法连接到套接字/ com / ubuntu / upstart:连接被拒绝。

来自分类Dev

套接字IO无法使用Swift连接到服务器

来自分类Dev

套接字IO重新连接后未接收到发射数据

来自分类Dev

使用socket.io通过套接字连接到mysql数据库时出错

来自分类Dev

PHP套接字,无法连接-循环?

来自分类Dev

无法在Treeline上连接套接字

来自分类Dev

Docker MySQL无法连接到套接字

来自分类Dev

无法使用javascript连接网络套接字

来自分类Dev

套接字无法检测到断开连接

来自分类Dev

无法使用javascript连接网络套接字

来自分类Dev

无法在本机反应中连接套接字

来自分类Dev

C:套接字连接和数据丢失

Related 相关文章

热门标签

归档