Git Product home page Git Product logo

Comments (2)

morozovsk avatar morozovsk commented on July 19, 2024

I fix it. Thank you.

from yii2-websocket.

Lord-Evil avatar Lord-Evil commented on July 19, 2024

Вебсокет на PHP слишком муторно выходит у всех. На D 40 строк и все работает, ибо все уже реализовано по человечески во фреймворке Vibe-d. Реккомендую. Вот пример:

module wsocket;

import vibe.d;
import vibe.utils.array;
import std.stdio;

WebSocket[] m_socks;

shared static this(){
    auto router = new URLRouter();
    router.get("/chat/ws",handleWebSockets(&handleConn),).post("/chat/push",&pushMessage);
    auto settings = new HTTPServerSettings;
    settings.port = 8000;
    settings.bindAddresses = ["0.0.0.0"];
    settings.sessionStore = new MemorySessionStore;
    listenHTTP(settings, router);
}

void handleConn(scope WebSocket sock)
{
//  logInfo("Incomming connection! "~sock.request.clientAddress.to!string~" "~sock.request.headers["Sec-WebSocket-Key"]);
    m_socks~=sock;
    while (sock.waitForData()) {
        auto msg = sock.receiveText();
        //can do something with incomming message
    }
//  logInfo("Connection closed! "~sock.request.headers["Sec-WebSocket-Key"]);
    m_socks.removeFromArray(sock);
    sock=null;
}
void pushMessage(HTTPServerRequest req, HTTPServerResponse res){
    if(m_socks.length>0){
        foreach(WebSocket s_sock;m_socks){
            Json data = req.json;
            s_sock.send(data.toString());
        }
        res.writeJsonBody(["status":"success"]);
    }else{
        res.writeJsonBody(["status":"fail"]);
    }
}

/chat/ws - сам вебсокет
/chat/push - морда для того, чтоб PHP скрипт его пинал. Вот для Yii можно действительно сделать, как у тебя модель для отправки вызова откуда угодно, все.

from yii2-websocket.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.