为什么数据在 socket.io 中丢失
Why is data being lost in socket.io?
我正在构建一个小应用程序,它跟踪日志并将其显示在客户端上。但是,当我将行附加到日志时,我会丢失一些数据。
以下是相关的 Python 处理程序:
@socketio.on('Request logs')
def handle_request_logs():
logfile = '/path/to/some_log.log'
# gets last 25 lines from logfile
last_n_lines = tailer.tail(open(logfile), 25)
# sends the initial 25 lines
emit('Initial send', { 'lines' : last_n_lines })
# emits lines that were appended to logfile
@copy_current_request_context
def tail(logfile):
for line in tailer.follow(open(logfile)):
print("About to emit {0}".format(line))
emit('log', { 'line' : line })
# emit added lines as they come
t = threading.Thread(target=tail, args=(logfile,))
t.start()
这是接收'log'
的 JS:
socket.on('log', function(data) {
alert("Got some data: ", data['line']);
});
每当我将某些内容附加到日志(例如echo 'hello, world!' >> /path/to/some_log.log
)时,我都会在客户端上看到带有消息的警报 "Got some data: "
.但是,我的服务器打印"About to emit hello, world!"
。
为什么会这样?
警报中有一个逗号(javascript)。 它可能应该是 + 表示串联。
相关文章:
- 如何使用Socket.io将命令从客户端发送到服务器
- Socket.io socket.emit 不将数据传递到服务器
- Socket.IO socket.id 更改同一客户端而不重新连接
- Node.js+Express+socket.io-socket.io服务不正常
- 节点.js /socket.io/socket.io.js 找不到
- 发出到套接字 IO socket.id
- 将socket.io/socket.io.js加载到html头中返回"ReferenceError:io未定义
- 错误连接拒绝http://localhost:3000/socket.io/socket.io.js.
- Sails.js IO.socket not firing
- 使用AJAX与套接字.IO socket消息
- Socket.io socket.disconnect();
- 正在检索io.socket中的所有套接字对象
- Socket IO - Socket.Emit被发送到所有客户端
- Express.js 'socket.io/socket.io.js 404'
- 使用公共IP运行/socket.io/socket.io.js
- socket.io/socket.io.js stuck on (pending) - Node.js
- 我得到了GEThttp://localhost:81/socket.io/socket.io.jsnet::ERR_CO
- Node.js /socket.io/socket.io.js not found express 4.0
- 带io.socket的sails应用程序
- Express -如何在路由文件中使用io.socket.emit