Crystal Lang Websocket服务器

Crystal Lang Websocket服务器,websocket,crystal-lang,Websocket,Crystal Lang,我需要有关Crystal Lang websocket的帮助,我想知道如何升级我在websocket上的连接。我想制作简单的websocket服务器希望对您有所帮助 require "http/server" SOCKETS = [] of HTTP::WebSocket ws_handler = HTTP::WebSocketHandler.new do |socket| puts "Socket opened" SOCKETS << socket socket.on_mess

我需要有关Crystal Lang websocket的帮助,我想知道如何升级我在websocket上的连接。我想制作简单的websocket服务器

希望对您有所帮助

require "http/server"
SOCKETS = [] of HTTP::WebSocket
ws_handler = HTTP::WebSocketHandler.new do |socket|
puts "Socket opened"
  SOCKETS << socket
socket.on_message do |message|
    SOCKETS.each { |socket| socket.send "Echo back from server: #{message}" }
  end
socket.on_close do
    puts "Socket closed"
  end
end
server = HTTP::Server.new([ws_handler])
address = server.bind_tcp "0.0.0.0", 3000
puts "Listening on http://#{address}"
server.listen
需要“http/server”
HTTP::WebSocket的套接字=[]
ws|u handler=HTTP::WebSocketHandler.new do| socket|
将“插座打开”

SOCKETS如果您正在寻找可以使用的东西,那么您可以使用我创建的Shivneri框架,它提供了一个javascript库和基于MVC的方法来创建套接字服务器

如何创建web套接字端点
class ChatController
如何使用javascript连接到web套接字端点 Shivneri框架提供了一个javascript库来帮助您创建实时web应用程序

var socket = new shivneriWsClient.Instance();
socket.on("message", function(data){
    console.log("data", data);
});

await socket.init(`<web-socket-url>`);

// emit event to server
socket.emit("message","Successfully connected")
var socket=new shivneriWsClient.Instance();
socket.on(“消息”,函数(数据){
控制台日志(“数据”,数据);
});
等待socket.init(``);
//向服务器发出事件
socket.emit(“消息”,“已成功连接”)
它提供了许多功能,如客户端分组、客户端连接和断开连接时的事件等


有关更多信息,请查看shivneri websocket文档-

非常感谢您,我遇到了错误,但我通过更改“socket.on\u close do puts“socket closed”SOCKETS.delete(socket)end”修复了它。问题在于连接立即关闭
var socket = new shivneriWsClient.Instance();
socket.on("message", function(data){
    console.log("data", data);
});

await socket.init(`<web-socket-url>`);

// emit event to server
socket.emit("message","Successfully connected")