小编Thy*_*rel的帖子

通过 websocket 附加 docker 容器的 stdin

我正在使用 chrome websocket 客户端扩展附加到一个正在运行的容器,调用 Docker 远程 API,如下所示:

ws://localhost:2375/containers/34968f0c952b/attach/ws?stream=1&stdout=1
Run Code Online (Sandbox Code Playgroud)

容器从我的机器本地启动,在等待用户输入的图像中执行 jar。基本上我想从网络浏览器的输入字段提供这个输入。

虽然我能够使用 API 端点进行附加,但我遇到了一些问题 - 可能是由于我对 ws 端点的缺乏了解以及糟糕的文档 - 我想解决这些问题:

1) 使用chrome websocket 客户端扩展发送数据时,根据网络检测工具,该帧似乎是通过websocket 传输的。但是,在容器中运行的等待输入的进程只在 websocket 连接关闭时接收发送的数据 - 一次完成。这是标准行为吗?直观地,您会期望输入立即发送到流程。

2) 如果我同时附加到 stdin 和 stdout,docker 守护进程会卡住等待附加 stdin,导致看不到任何输出:

[debug] attach.go:22 attach: stdin: begin
[debug] attach.go:59 attach: stdout: begin
[debug] attach.go:143 attach: waiting for job 1/2
[debug] server.go:2312 Closing buffered stdin pipe
[error] server.go:844 Error attaching websocket: use of closed network connection
Run Code Online (Sandbox Code Playgroud)

我已经解决了为 stdin 和 stdout 打开两个单独连接的问题,这可行,但真的很烦人。关于这个有什么想法吗?

提前致谢!

api input websocket docker

6
推荐指数
0
解决办法
1594
查看次数

Spring Web套接字消息代理失败的测试

我很难将Web套接字消息代理集成到我现有的spring项目中.我有一些功能齐全的存储库和服务.但是,当我尝试使用websocket配置(通过组件扫描从config.xml自动加载)连接我的东西时,我所有现有的测试突然失败.

WebSocketConfig

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableStompBrokerRelay("/topic/");
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/main");
    }


}
Run Code Online (Sandbox Code Playgroud)

测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:config.xml"})
public class CategoryDaoTest extends DomainTestBase {

    @Autowired
    private CategoryDao categoryDao;

    @Test
    public void testAdd() {
        int size = categoryDao.list().size();
        categoryDao.add(new Category(5L, "test-category", "lorem ipsum"));
        assertTrue (size < categoryDao.list().size());
    }

    @Test
    public void testUpdate() {
        Category category = new Category(5L, "test-category", "lorem ipsum");
        categoryDao.add(category);
        category.setTitle("updated");
        categoryDao.update(category);

        // verify …
Run Code Online (Sandbox Code Playgroud)

java spring websocket

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

使用Symfony Validator验证Doctrine实体

我很难将Symfony验证器组件与Doctrine集成(独立,不使用完整的Symfony框架).到目前为止,我已经设法在Doctrine的AnnotationRegistry中注册注释约束并挂钩生命周期回调,但是我如何实际检索验证器并解析生命周期方法中的注释?

我的实体看起来像这样:

<?php
namespace App\Model;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * User
 *
 * @ORM\HasLifecycleCallbacks
 * @ORM\Table(name="users", uniqueConstraints={@ORM\UniqueConstraint(name="id_UNIQUE", columns={"id"}), @ORM\UniqueConstraint(name="username_UNIQUE", columns={"username"})})
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class User extends AbstractEntity
{
    /**
     * @ORM\PreUpdate
     * @ORM\PrePersist
     */
    public function validate()
    {
        // how do I retrieve the validator?

        // $validator->validate($this);
    }

    /**
     * @var string
     *
     * @ORM\Column(name="username", type="string", length=45, nullable=false)
     * @Assert\Length(min=3, max=45)
     */
    protected $username;

    /** ... */
}
Run Code Online (Sandbox Code Playgroud)

php validation doctrine symfony

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

标签 统计

websocket ×2

api ×1

docker ×1

doctrine ×1

input ×1

java ×1

php ×1

spring ×1

symfony ×1

validation ×1