我是Gitlab CI的新手,但现在已经阅读了一段时间了.
我必须在每次提交后在我的Gitlab上测试编译C#-Projects,并发现我需要使用Windows Shell-Runner设置CI来正确构建我的项目.
不幸的是,我的Gitlab设置只允许开发人员和机器通过SSH连接,而不是HTTP.但我的Windows运行器总是尝试通过http连接并使构建失败.
如何正确配置?
我已经尝试编辑config.toml与跑步者相关联,但没有选项指定是否使用ssh或http.
我正在努力为跨平台设备提供实时聊天服务.问题是
System.Net.WebSockets名称空间不允许我直接跟踪已建立的连接.我可以获取当前连接的sessionID但是如何await socket.SendAsync(buffer, WebSocketMessageType.Text, CancellationToken.None)为特定客户端执行以下操作?
如果我可以使用Microsoft.WebSockets,我将有可能创建一个WebSocketCollection()类似的东西client.Send(message),但我无法ArraySegment<byte[]>通过它发送.我也认为这更适用于AJAX客户端和网站以及这些东西.
我现在有以下代码片段:
public class WSHandler : IHttpHandler
{
event NewConnectionEventHandler NewConnection;
public void ProcessRequest(HttpContext context)
{
if (context.IsWebSocketRequest)
{
context.AcceptWebSocketRequest(ProcessWSChat);
}
}
public bool IsReusable { get { return false; } }
private async Task ProcessWSChat(AspNetWebSocketContext context)
{
WebSocket socket = context.WebSocket;
int myHash = socket.GetHashCode();
while (true)
{
ArraySegment<byte> buffer = new ArraySegment<byte>(new byte[1024]);
WebSocketReceiveResult result = await socket.ReceiveAsync(
buffer, CancellationToken.None);
if (socket.State …Run Code Online (Sandbox Code Playgroud)