小编J. *_*ans的帖子

Spring websockets损坏的管道和客户端没有收到消息

我在使用websockets时遇到一些问题:

  • java.io.IOException: Broken Pipe
  • 客户端不接收消息
    TL; DR

我想知道的主要事项:

  • 请列出客户端关闭连接的所有可能方案(除了刷新或关闭选项卡).
  • 除了服务器通过断开的连接向客户端发送消息之外,是否会发生损坏的管道异常?如果是,那怎么样?
  • 尽管服务器确实发送了心跳,但服务器不发送消息的可能情况有哪些?(当发生这种情况时,我需要重新启动应用程序才能再次使用.这是一个糟糕的解决方案,因为它已经在生产中.)


我有一个SpringMVC项目使用websockets; SockJS客户端和org.springframework.web.socket.handler.TextWebSocketHandler服务器端.

A JSON生成服务器端并发送给客户端.有时,我得到了java.io.IOException: Broken Pipe.我google/StackOverflowed很多,发现太多我不理解的东西,但原因可能是连接是关闭客户端而服务器仍然发送消息(例如,心跳).听起来不错吗?这种例外的其他原因是什么?客户端关闭连接的原因是什么(刷新或关闭选项卡除外)?

此外,有时客户端不会从服务器获取任何消息,尽管服务器应该发送它们.我在发送消息之前和之后进行登录,并打印两个日志语句.有谁知道为什么会发生这种情况?我在Chrome的控制台日志中没有错误.刷新页面不起作用,我需要重启spring项目...

如果您需要更多信息,请发表评论.


客户端

function connect() {
    var socket = new SockJS('/ws/foo');

    socket.onopen = function () {
        socket.send(fooId); // ask server for Foo with id fooId.
    };

    socket.onmessage = function (e) {
        var foo = JSON.parse(e.data);
        // Do something with foo.
    };
}
Run Code Online (Sandbox Code Playgroud)

服务器端
服务

@Service
public class FooService implements InitializingBean {
    public void …
Run Code Online (Sandbox Code Playgroud)

java spring websocket sockjs

11
推荐指数
1
解决办法
4368
查看次数

MongoDB在数组中添加和删除字段

我正在开发一个使用MongoDB的项目,但我从未使用它.我明白通过使用javascript,你可以操纵数据库.我创建了一个删除一些字段并添加其他字段的脚本,但它无法正常工作:

db.floor.find({_id:"003"}).forEach( function(doc) { // Find floor with id = 003.

    var tiles = doc.tiles; // Get tiles from floor.

    for(var i = 0; i < tiles.length; i++){ // Loop through tiles.
        var tile = tiles[i]; // Get tile at index i.
        if (tile.nodeType){ // If tile has a field "nodeType", 
            tile.tileType = tile.nodeType; // add a field "tileType"
            delete tile.nodeType; // and delete the "nodeType" field.
        }

        // THIS CODE BELOW IS NOT WORKING
        var sensors = tile.sensors; // …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb mongodb-query

8
推荐指数
1
解决办法
449
查看次数

标签 统计

java ×1

javascript ×1

mongodb ×1

mongodb-query ×1

sockjs ×1

spring ×1

websocket ×1